Tutti i giochi
da fare sulla spiaggia
Simula un computer
con conchiglie e sassolini
*4
La scatola robot
* ■ ►
t I
c
Mensile - 25 Euglio/25 agosto 19B5 - Anno IV - n 22 -Sped Abb. Post. Gr. W/70CR - Drstr. MePe
L, 3.000
Un'iniziativa condotta
la nota rivista Computer
tlfrMr»!. 14 I StUfl*
PROGRAMMO IN
BASIC
U linguaggio del futuro rrr un
manuale rapido e completo di
Clizia Merli
pagg. 224 (L 9.000)
Il Basic, attualmente il
linguaggio più conosciuto -
adatto all “utilizzo su qualunque
iipo di macchina e in
particolare sul personal e gli
home-computer - può essere
appreso m poche ore con
l'ausilio di queste agile
manuale.
COME SCEGLIERE UN
COMPUTER
Guitte pratica per l'acquisto d-
un mini o ds un mi ero computer
professionale di Michele
D t Pisa
pagg 160 (L. 6,000)
Quale modello scegliere tra gli
olire 600 computer
commercia libali in Italia? La
conoscenza delle
caratteristiche delle vane
macchine è indispensabile Con
un approccio a "meno “
l'Autore vuol essere guida
proprio m quesla fase.
I volumi,, che sono comunque in vendita nelle migliori librerie di tutta
possono anche essere richiesti direttamente all'Editore.
Importante: l'ordine minimo dovrà essere di L 15.000
Albino Cultrora,
Michel? P: Pisa. franici;* Giacomelli
DEH,*
INFORMATICA
DIZIONARIO
DELL'INFORMATICA
Vocabolario Inglese -Iteliimò
Vocabolario Inglese-Italiano di
Cultrera , Di Pisa, Giacerne! fi
pagg 368 fi. 25.000)
Uno strumento indispensabile
per chi si avvicina al mondo
dell 'intorni alice e per gli
specialisti che hanno l'esigenza
di accedere alta dinamica
letteratura anglosassone.
raMPMEO ' k .*
UTILITY E ROUTINE
PER IL
COMMODORE 64
di Gloriano Possi
pagg. 192 fi. 9.000)
l'esecuzione di una istruzione
BASIC pud richiedere diverse
centinaia di passi di programmi
in linguaggio macchina La
dim ansio ne dei programmr é
ciò che intimidisce
maggiormente l'ufli lizzatole
medio di Commodore: aiutalo
da questo testo chiunque potrà
affrontare senza problemi il
processo di Scrittura di un
programma
BASIC PER LO
5PECTRUM
di Maurizio Ariana e Cimo Merli
pagg 192 (L 9.000 }
Un libro per quanti hanno
acquisiate il computer ZX
Spectrgm della Sinclair e
Intendono sfruttarne appieno
tutte le capacità, dall' hardware
al/a programmazione in
assembty {linguaggio
macchina}.
Edizioni A CANTHUS
VIALE GRAN SASSO, 23 - 20131 MILANO
Inviatemi i seguenti volumi-
ruoto
quantità
prezzo unitario
sj>e£& postala
2.000
latale
Pagherò contrassegno il dovuto {più L, 2.000 per contributo spese postali} al ricevimento
Potrò restituir© r libri entro 8 giorni se non saranno di mio gradimento e avere rt rimbor-
so immediato.
COGNOME
NOME
VIA
C.A.P.
CITTÀ
FIRMA
DATA
Scrivere in stampatello e spedire in busta chiusa
12 1 BIGA
20 PALLOTTOLIERE
CINESE
IL COMPUTER
INTELLIGENTE
31 PAROLE INCROCIATE
ESTATE: TEMPO DI QUIZ
L’Utile
* 35 Old
55 II disk drive 1541 •
Didattica
4 1 Come reai «zzare un menu •
Oltre il basic
47 Monitor LM dei C 1 6
Rubriche
SPECIALE
VACANZ
Giochi
50
Marzio
*
60
Indovinello
•
63
Alfabeto pazzo
*
*
*
67
Confucio
•
70
Trifidi
*
CATTURA L'AVVENTURA
Domande/Risposte
Editoriale
Le immagini di questo fascicolo
1 listati della Systems Editoriale
^ vfi
ir'* ■ • ^ -
Direttore; Alessandro- de Simone
Redazicrtis/tol laboratori; Gtovsmi Beìlù, And>es e Alberto Boriaci, Gianca/lc Castagni.
Eugenio Coppari. Marco Da Martino, Luca Galluzzo Giancarlo Mariani. Flavio Molinari,
Enrico Scolla. 0 . Mattono, M.L, Mirti, Massima Patti. Carla Rampi. Fabio Sorgala, Danilo Toma
Segreteria di r*d*3!k}Tra Maura Gettatoli, Piera Perin
Ufficio Grafico: Mary BanvonutG, Muro Caglia. Paofco Vfrrìucclo
D irtelo*», ivdizlont, pubblicità : Vie Famagoste. 75 ^ 20 1 42 Milano - Tot 02/0467348
Pubblicità: Milano: Micco Croce [cocrdtitatore}. Giuseppe Porzani. Michela Ftsndlni.
Giorgio Rutto™, Claudio Udore, Via Claude - Segretaria: Lituana Degiorgi
S Roma: Spazio Nuovo - via, P. Foscari 70 - 0 Q 1 I 39 Roma - Tol. OS/ 18 I 0 & 679 -
Abbon ameni! ; Marina Ventini
Tariffe: prezzo por copie L 3-000. Abbonamento annuo (il lasciceli) L Sfl.OOO. Estero-: il doppio
Abbonamento cumulativo alle riviale Computar a Commwtore GofnpLrterClub L. S5.000
I versamenti vanno indirizzali a: Systems Editoriale Srl mediante assegno bancario
o mitizzando il c/e postale n. 37952207
Coni posili ani: Systems Editoriale Srl Fotolito: Systems Èdiioeais Sri
Stampa: La Litografica S.r.l. - Busto Arsa io (VA)
Registrazione: Tribunale di Milano n. 370 del 2/i/B 2- Direttore 'Responsabile: M-cbeio Di Pisa
Sped. in abo posi, gr 111 - Pubblicità interiore al 70%
Distribuzione: MePe. via G- Carpano 32 - Miiano-
‘ W '
J •
--
Domande Risposte
DOJNV14DE KI2 b08LE
Commodore 64,
Commodore 128 & CP/M
□ Uhe cosa é il sistema operativa dei Commo-
dore 64 e, in particolare, che cosa è H sistema
operativo CP/M e come io si pud utilizzare,
inserendo l'apposita scheda, col Commodore
M? (Francesco Bedittì - Firenze)
* La tua domanda capita a fagiolo, data la
prese ni a/io nc dei nuovi modelli C\ ammodo-
re. e ti ringraziamo per averci dato lo spunto
per parlarne. Cercheremo di essere brevi, ma
chiari. Pot Sistema Operativo (S,0 ) si inten-
de quel particolare complesso di istruzioni e
comandi in linguaggio macchina (L.M.) che
consentono al calcolatore di eseguire pro-
grammi in vari linguaggi (come il Basic), rou
ti ne di memori dazione, output su Mampantc,
collegamenti con modem, periferiche varie
eccetera.
Ogni computer ha il proprio sistema ope ra-
ti vo che. molto spesso, è incompatibile con
altre marche o, addirittura, con modelli della
stessa casa.
Ciò vuol dire che quel particolare gruppo di
istruzioni ha un significalo ben preciso solo
per quel modello e non per altri.
Quasi sempre, però, il S O, è. come si dice
in gergo, 'trasparente", vale a dire che l’uten-
te finale può non accorgersi minimamente che
è in funzione un particolare sistema operativo
e molti lettori, come te. non sanno neppure
che esiste!
In altre parole, se ti trovi davanti un com-
puter che '“parta" Basic (e non sai altro di lui]
r istruzione PRINTPIPPO” produrrà lo
stesso effetto sia che il computer sia un Vìe 20.
oppure uno Speci rum oppure un Olivetti o un
qualsiasi altro computer che parli il Basic.
C iò significa che il linguaggio Basic È 'gui-
dato'’ dal sistema operativo del calcolatore
che, nel complesso, provvede a produrre lo
stesso effetto nei vari computer.
Chi si ri lo che una cosa £r il linguaggio e ben
altra c il S.O.. c’d da dire che il sistema opera-
tivo cambia profondamente a seconda del mi-
croprocessore ( = cervello) adoperato sul
computer in oggetto.
ì computer C ommodore utilizzano i micio
6502. da cui deriva il 65111 del C-64,, che gesti-
scono t dati secondo una particolare
“architettura".
Ufi altro grande microprocessore é il famo-
so Z-81K col quale è possibile strutturare
un arch ile t tura diversa
Quando si realizzò lo Z-80. una equipe di
tecnici, sfruttando e ottimizzando le interes-
sami caratteristiche di tale miero. idearono un
sistema ottimizzato di organizzazione di dati e
memoria che prese il nome di CP/M (Control
Program?; for Mierocomputers). Molte case
cosi rut t ri ci d i com p uter s i gè 1 1 a ro no a capofit -
to col CP/M ed il risultato è che oggigiorno è
disponibile una biblioteca di programmi in-
credibilmente vtistEi grazie alla compatibilità
di macchine che. pur diverse tra loro, possono
comunicare proprio in quanto posseggono lo
stesso sistema operativo.
Qualche tempo dopo si realizzò il micio
65£)2, che non ebbe lo stessi] successo dello
Z-HU. ina consentì di produrre piccoli compu-
ter a basso costo, ira questi figurarono i
Commodore, gli Apple, gli Atari e tanti altri.
Purtroppo ognuno di questi, pur possedendo
l'identico miero, avevano diversi sistemi ope-
rativi e l'incompatibilità presentò subito il
vantaggio della separazione delle sfere com-
merciali,. ma bloccò, di fatto, il “decollo" del
6502 in modo da opporre una seria barriera
concorrenziale a! CP/M,
In questi ultimi tempi un nuovo micropro-
cessore. il 68000 delia Motorola, sta prenden-
do piede soprattutto dopo le positive espe-
rienze con l"S0£8, che deve essere considerato
il “vero" precursore dell'MS/DQS, e renderà
tra breve (pettegolezzi di portineria) obsoleto
qualsiasi altro sistema, CP/M compreso. Il
68000. in effetti, consente un ‘archi Lettura po-
tente. versatile e veloce che è sfruttaci dal
nuovo astro; l'M S/DOS.
Riassumendo: oggi, 1985. sono disponibili
due veri grandi sistemi operativi;
CP/M, vecchio ma che vanta una straordi-
naria biblioteca di programmi soprattutto per
le aziende;
MS/DOS, il sistema operativo del futuro
che però, data la giovane età, non dispone di
programmi che sfruttino in pieno le notevoli
potenzialità del nuovo 68000,
Oltre ai due prima citati vi sono i vari siste-
mi Commodore. Apple, eccetera, incompati-
bili tra loro ma pur dotati di una grande bi-
blioteca soprattutto destinata alla casa, ai gio-
vani, alle piccole e piccolissime aziende.
Poiché non è facilmente possibile “simula-
re" coli 6502 il miero Z-80, ecco che si rende
necessaria una scheda elettronica aggiuntiva
che, di fatto, esclude il 6502 sostituendolo con
lo Z-$0. presente sulla stessa scheda. In prati-
ca ciò che rimane del 64 ù la tastiera e la
memoria RAM che viene ora gestita dal nuo-
vo microprocessore ospite.
La scheda CP/M da col lega re col C-64 non
sembra aver goduto molto successo a e a usa di
alcune presunte incompatibilità inevitabili
per mancanza di accordi sullo sfruttamento
del brevetto. Con l'esplosione del fenomeno
MS/DOS e con l’esigenza di restare sulla cre-
sta dell'onda, la Commodore ha avuto una
bella “pensala" ed ha telefonato alla Digital
(che detiene il brevetto CP/M) dicendo piu o
munii così :
"Il CP/M tra un pò cola a picco e le pretese
di royalty del vostro brevetto devono essere
ridimensionate. Se voi ci date il CP/M a basso
costo, noi. col nome Commodore, contribuia-
mo ei tenere in vita il vostro sistema c avete il
tempo per realizzare qualcosa d altro. Noi.
viceversa, non siamo costretti ad abbandona-
re Te norme esperienza accumulata coti mi-
croprocessori a soli otto bit e presentiamo un
apparecchio a basso costo abbastanza
innovativo".
Probabilmente, dall’altro capo del filo,
hanno risposto, forse a denti stretti, “ocdiei"
ed il risultato ù un apparecchio ( il Commodo-
re 128) che, in effetti, é una fusione di tre
computer mi di una stessa piastra;
a/ Commodore 64. identico in tutto e per
rutto al C-64 che si trova in commercio.
h/ Commodore 128, il nuovo apparecchio
che dispone di potenti comandi Basic e di
I28K di RAM iunC’64 PLUS-PLUS!)
c/ CP/M che consente di accedere alfi ni-
ni e nsa biblioteca disponibile sul nostro
pianeta.
Ogni sezione elettronica ha il proprio mi-
ero: 6502 per Ea sezione C-64, 8502 per il
C-128 e Z-fifl per il CP/M.
Oltre a questi cervelli sono presenti altri
chip particolari che consentono, soprattutto,
h selezione della parte elettronica che
interessa.
Il risultato di tutto questo è che, grazie al
C- 12H. clic d auguriamo di vedere al prossimo
SMAU anche in Italia, la Commodore rende-
rà disponibile, con il classico uovo di Colom-
bo, un modello che elimina con un sol colpo il
problema della incompatibilità col modello
precedente (C-64) e coi S O, attualmente più
utilizzato (CP/M).
Mettendo, nello stesso contenitore ben tre
computer al prezzo di uno solo di essi, il suc-
cesso di vendite non potrà che essere
brillarne.
Incompatibilità col furbo- tape
□ Usando il programma Turbo-tape, alloca-
to, come è noto, nella parte "alta" della me-
moria, si crea incompatibilità con altri pro-
grammi, specie in Linguaggio Macchina (es.
mutine grafiche dì Toma), poiché occupano fe
stesse locazioni di memoria, C f è un modo per
"spostare" il Turbo-tape in altra zona di me-
moria? (Enzo Filippi - Alhiano-TN)
4 - Commodore Computer Club
• Spostare un programma in Linguaggio
Macchina, quale il Turbo-tape, ù possibile,
ma richiede un notevole studio degli indiriz-
zamenti assoluti ed un'attenta analisi detta
me morizzazione di variabili di comodo.
Spieghiamoci meglio.
Supponiamo che il programma in L.M. sia
memorizzato dalla locazione 50000 alla 52000
e che lo ri al lochiamo, con una semplice routi-
ne, dalla locazione 40000 alta 42000.
Supponiamo anche che consenta al suo in-
terno un istruzione del tipo:
STA * 51900
Questa istruzione, come è noto, deposita il
contenuto del l’accumulatore nella locazione
decimale S 1900. Un puro e semplice “trasferi-
mento" del programma a partire, come già
detto, dalla locazione 40000. non modifica
1 indirizzo assoluto dell'Istruzione con la con-
seguenza che il programma, benché “rialloca-
io" in altra zona di memoria* continuerà a
trascrivere il dato contenuto nell accumulato-
re nella locazione 51900. alterando una zona
di memoria a torto ritenuta libera dopo l'ope-
razione di trasferimento.
In altre parole, chi desidera effettuare rial-
locazioni deve disassembtarc la routine tn
L.M, ed esaminare (ovviamente modifican-
dole) tutte le istruzioni con indirizzo assoluto,
quelle indicizzate, rintracciare eventuali ta-
belle di messaggi e... sperare che le modifiche
apportate siano quelle giuste e idonee!
La riga 100 scrive un messaggio al quale si
deve rispondere premendo il tasto "S " oppu-
re “N"
La HO attende che venga premuto un tasto.
La riga 120 esamina se il tasto premuto é
una "S". In questo caso va ad eseguire il
sottoprogramma (GOSUB) che inizia alla ri-
ga 10100 (N.B, dopo la fine del gioco vero e
proprio).
Dalla riga 200 alla 10000, come abbiamo
ipotizzato, è presente il tuo gioco che non è
necessario modificare in alcun modo.
Alta riga 10100 inizia il sottoprogramma,
richiamato dalla riga 120 se hai premuto “S + \
che non £ altro che un gruppo di istruzioni dì
FR1NT che hanno il compito di visualizzare le
regole del gioco,
L'ultima riga del sottoprogramma deve es-
sere costituita dall 1 istruzione RETURN che
comunica al calcolatore l'ordine dì ritorna-
re,,. da dove era venuto (riga 120) e di ripren-
dere il programma dall'istruzione Recessiva al
GOSUB.
Ma l’istruzione successiva é costituita pro-
prio dall'inizio del gioco vero e proprio che.
appunto, parte immediatamente al termine
della visualizzazione delle regole del gioco.
V w
\f*y
Vuoi le istruzioni?
Come posso fare affinché, prima deirintzio
dì un gioco, vengano scritte le regole dello
stesso? (Dario Gabrielli - Codone ghe - PD)
* Supponiamo, per semplificare le cose, che
il gioco vero e proprio inizi alla riga Basic 200
e termini alla 10000.
Aggiungi le seguenti linee
100 PRINT'VLJQI LE ISTRUZIONI? (S/
N) M
lìti GETAS:IFAST THEN 110
120 IF AJ=“S” THEN GOSUB 10100
200 REM QUI INIZIA IL GIOCO
Strani codici
□ Ho scoperto casual mente un n uovo si mbofa
che si riscontra sia sul C-64 che sul Vie 20 e
C-ló- Esso si ut tiene, dòpo aver aperto le vir-
golette, premendo l tasti CTRL e quello di
freccia a sinistra. 11 risultatele una F in campo
inverso. A che cosa serve? (Luca Monticelli -
Milano)
* À niente! Col tasto CTRL t possibile, al-
tresì, riprodurre altri simboli che generano
effetti vari e già noti come quelli del controllo
cursore. Tra l'altro, ti ricordo che col tasto
"N” (che genera, appunto, una "N” in campo
inverso) t possibile passare al modo maiusco-
lo minuscolo. Simula, in altre parole, il
comando:
PRINT CHR$(14)
7^-,
X
7^
10000 REM QUI TERMINA IL TUO
GIOCO
1011)0 PRJNTTL GIOCO CONSISTE
NEL**
10110 PRINT DISPORRE LE CARTE
DA"
10120 PRlNT“GIOCO IN MODO CHE 1 '
.....(eccetera).....
11000 RETURN
Sonoro che non suona
f ] C urne powo controllare se il chip sonoro d el
mio computer è guasto dato che non riesco a
fargli emetterli alcun suono? (Baldassarre Pi
Silvestre - Gela )
# Abbiamo piu volte detto che per controlla-
re la funzionalità delta parte sonora di un
computer è sufficiente digitare una delle dcci j
nc di routine sonore pubblicale e, durante il
NEW SUFTul
Accessori pur Compulsi
Via Carbone, 0 -Tel, 01 87/674097
19033 Castelnuovo Magra (SP)
Nastri per stampante
Prezzo
Commodore MPS SOI
11.000
Commodore MPS 80.2,
XSlIy 80 Miirivirrpsiimurrniirfiiifrsiil-rtriiptii
12.000
Commodore MPS 803
14.500
Commodore 8024
... 5,100
Epson MX7Q,B0.82.83,ERC 04.
FX0O, Rxeo, fxbo,
Commodore 402 2,
8022, IBM P/C. Sharp
CÉ332P, MZ S0P5A, PC3201 ....
.. 0 200
Commodoro 3022, 3023,
Epson TXBO, 1 toh 8300R.
OKI 80, 82A, 03 A, 92, 93,
Sharp P3
3.000
Epson MX1QQ
., 9 900
Commodore 8023P. MPP 1361
Sharp B0P4A. Centronics 1 50
... 8 950
Commodore 0026,
8027, 8032
„ 6.950
Dischetti SF/DD x 10
(con box trasparente)
38.000
Dischetti DF/DD x 10
(con box trasparente)
43,000
Disco per pulizia delta testine.
Questo pub essere usato per
drive con una o due facce-
li liquido basta per circa
15 applicazioni
12.200
. ■- —
Usale la seconda faccia del
WS Mini disco. Tagliata a metà il costo dai
Dischetti! Foratore di Dischetti per usare
anche l'altra faccia del disco,
Per esempio Commodore 20/64,
Apple 4. Atari, eco. a sole 1 2.700
Tutti i prezzi sono IVA Inclusa
Pagamento coni rassegno. Per ordini suporiori a
L. 50.000 spase postali a nostro canee,
SPECIALI SCONTI A TUTTI
i RIVENDITORI
Commodore Computer Club - 5
loro funzionamento, sintonizzare con calma if
televisore con cui si è collegati. Se non si sente
nulla i casi sono due: o il televisore è incompa-
libile col computer (può succedere) oppure il
computerà guasto,
Co! tuo Commodore 64 prova a far girare il
programma che segue e che genera impulsi
sonori continui:
100 POKE 54296, 15: POSE
54276,17
110 POKE 54277,3: POKE 5
4273,0
120 POKE 54276, 17 :POKE
54273,40
130 POKE 54272,38
140 FOR 1 = 1 TO 100 s NEXT
150 GOTO 100
V-""
Danni di pa&sa£gìo da Vie 20 a C-64
□ Cosa può succedere e quali danni possono
accadere se digito un programma scrìtto' per LI
Vk 20 nel Commodore 64 e viceversa? (An-
drea Armargli - Bologna)
m Assolutamente nulla di dannoso può acca-
dere nei casi citati: al massimo il programma
funziona male o provoca un '‘inchiodamento"
della macchina In quasto caso l’unico danno
che ne deriva è quello relativo alla perdita del
tempo impiegato per iscrivere il listato!
Simulazione, su Vie, del C-64
~ ! E 1 possibile ottenere col Vìe 20, una mappa
di memoria dello schermii come quella del C-
*4? (Davide M aizza)
* Lo schermo del Vie 20 t formato da 22
colonne e 23 righe mentre quello del Comma
dorè 64 da 25 e 40 colonne.
Il circuito integrato video del Vie è fallo in
modo da gestire la zona di memoria dedicata
alto schermo tenendo conto del formato cita-
to. Non è quindi possibile modificare le di-
mensioni dello schermo del Vie in modo da
portarlo alia grandezza del C-64,
Vi sono stati, nel passato, tentativi di com-
mercia] i/./a re schede elettroniche che consen-
tissero tali trasformazioni ma, a parte la pessi-
ma visualizzazione dei caratteri, avevano un
costo pari a quello del computer stesso. E 1
ovvio che l'acquirente preferiva, fatti i debiti
contri acquistare direttamente un Commodo-
re 64 che dava, tra l’altro, numerosi altri intui-
bili vantaggi.
Il LISP
□ Esiste il LISE per il Commodore 64? (Gian
Franco Querciagrossa - Forti) t
m Col Commodore 64 è possibile, almeno m
teoria, implementare quasi tutti t linguaggi e
sistemi operativi (compreso il CPfM grazie ad
uilEs scheda aggiuntiva). Non conosciamo, tut-
tavia» se sia disponibile anche il Lisp. Rivol-
giamo pertanto la tua domanda ad eventuali
Dille che commercializzano tale prodotto.
I programmi gestionali
O Gradirei vedere pubblicati programmi ge-
.stilinoli, (Sauro Gregnanin - Rovigo)
* Purtroppo il numero di richieste in tal senso
è troppo modesto per giustificare la pubhli ta-
stone di programmi gestionali. Articoli e lista-
ti di semplici routine finanziarie, al contrario,
sono stati c saranno presi in considerazione
per soddisfare sia gli studenti di ragioneria,
sia coloro che. magari per semplice curiosità
ed aggiornamento personale, intendono co-
noscere problematiche finanziarie.
Argomenti particolari n comunque com-
plessi, verranno affrontati sull'altra nostra ri-
vista, COMMODORE, destinata, appunto,
agli utenti professionisti o “evoluii " .
C-64 come Vu-Meter
D Varrei sapere se l'entrata Audio del C-64 c
collegabile ad una sorgente sonora ud esempio
un amplificatore stereo! per ottenere disegni
sul video, la cui esecuzione dipende dal segnale
immessa fVU metti ecc,). Se cioè ottenìbile,
quali sona le locazioni di memoria per attivar-
lo? (Marco Lucenti - Vittorio Veneto)
« L’entrata audio del C-64 è collegata, trami-
te condensatore, direttamente ad un piedino
del circuito integrato SID (6581) che gestisce
il suono del computer. Il collegamento sud-
detto serve per creare effetti sonori speciali
immettendo nel computer un'onda in grado di
alterare il funzionamento stesso del SID,
La costruzione di un apparecchio in grado
di svolgere la funzione di interfaccia tra com-
puter e apparecchio esterno è possibile ma,
come puoi intuire, richiede conoscenze di
elettronica non indifferenti (digit al b_z azione
di un segnale analogico) ed esperienza di pro-
grammazione in Linguaggio Macchina data
l’alta velocità di risposta necessaria.
In conclusione, un analizzatore di spettro,
o un più modesto VU-Meter t richiede un ana-
lisi di programmazione c la realizzazione di
una serie di prototipi tra cui scegliere il più.
idoneo.
Problemi di sintonìa
Il mio C-64, connesso col televisore, pre-
senta righe trasversali fastidiose. Che cosa
posso fare? (Giuseppe Pini - Firenze)
m I casi sono due: il televisore che adoperi
"slitta ” in frequenza a causa della sua vetustà.
Prova a collegare il computer con un apparec-
chio più recente e verifica che tulio funzioni a
dovere.
Se il difetto persiste è probabile che il C-64
prevenga dal mercato inglese oppure che ab-
bia perso l'allineamento. In questo caso devi
inviare il calcolatore per la necessaria
taratura.
Il Turbo non va su di giri
FI programma Turbo tape, inserito nelle
ca.ssetle della rivista Commodore Club, non
gira col mio Vk 20. Come mai? (Tiziano Col-
letti - Alhenga)
* il Turbo tape è stato progettalo per il Com-
modore 64 e, di conseguenza, non può essere
adoperato sugli altri computer della Commo-
dore. Ciò è dovuto al fatto che la cosidetta
■ gestione" della memoria c di numerose rou-
tine dei due computer sono piuttosto diverse
tra foro
C-64 americano
D Purtroppo non sapevo che un computer
acquistalo in America non può funzionare in
Italia ed ora mi trovo un apparecchio inutiliz-
zabile C’è qualcuno disposto ad effettuare le
necessarie modifiche elettroniche? (Claudio
Padda ■ Firenze }
* C’è qualche centro di riparazioni in grado
di effettuare tali interventi? Fatecelo sapere,
per favore. Molti sono gli utenti che, come il
signor Fadda, sì trovano involontaria mente in
difficoltà.
Alessandra de Simon* 1
6 - Commodore Computer Club
COMPUTERTELEFONA
I TUOI
PROGRAMMI
CX-21 EPSON è un accessorio che dà un valore enorme al tuo calcolato-
re, quello dei terminali telecomunicazione.
CX-21 è un modem costruito con le tecnologie più avanzate, (modulato-
re - demodulatore) capace di convertire i segnali digitali in suoni che pos-
sono essere trasmessi con un normale telefono, in tutta sicurezza.
Con CX-21 puoi:
- "telefonare" i programmi direttamente al computer dei tuoi amici che pos-
seggono un CX-21
- comunicale con personal computer di altre marche
- collegarti con le banche dati di tutto il mondo /
CX-21 è progettato per adattarsi ai diversi apparecchi telefonia /
per consentire lo scambio veloce e facile di programmi e dati, / J
CX- 2 1 è costruito con spe dall circuì ti i nìegr ah CMOS , è pie- * i ta Hp
colo, leggero e molto affidabile. JghwS?-,, I
?os- y *0
//
4 *
Caratteristiche
- Funzionamento a batterie ncancabih
(4 ore di autonomia)
- Funzionamento duplex o half duplex
- Velocità di trasmissione fino a 300 bit-sec,
- Interfaccia RS 232
- Dimensioni 297x95x42 mm 4
- Peso 700 gr, *
Inoltre CX-23 può essere collegato a qualsiasi home o > a
personal computer tramite interf accia RS 232 - G *
/a®
EPSON CX-21,
il tuo computer in un
mondo senza confini
EPSON CX
Accoppiatore acusti
LY± a\t\ sono ormai gli utenti che porta- indovinelli dei prog
no con se le proprie apparecchiature nei riga, ed altre cosett
luoghi di villeggiatura. alcune delle pagine e
Si può trascórrere una giornata non leggere con tranquill
proprio assolata, infatti, in compagnia di ne o seduti in pineta
nuovi amici davanti allo schermo con un Agli a j tr j ar gomc
joystick in mano o un problema di stac’ penseremo più in là.
Alessandro de Simon*
EDITORIALE
Le immagini di questo fascicolo
Il rima di entrare negli studios della
Walt Disney Corpo rarions, Fattore Jeff
Bridges aveva l'abitudine di passare al-
meno un'ora davanti ai video game dì
casa sua. Obiettivo: entrare nello stato
d’animo adatto a interpretare la sua par-
te. Un training psicologico comprensìbi-
le: protagonista in tron, ieff si trovava
ogni giorno alle prese con colleghi ingag-
giati nel ruolo di software e diaboliche
ROM, tra bit amichevoli e ruscelli dì
energia, infine condannato a morte al-
l'interno di un videogame.
Per realizzare la futuristica avventura
del programmatore che entra nel compu-
ter, alla Watt Disney sono state mobilita-
te tutte le più sofisticate tecnologie elet-
troniche (del mondo reale). Uscito sugli
schermi a fine I9R2, Tron rappresenta
ancora adesso la più originale e sofistica-
ta opera nella storia della cinematografia
mondiale.
TRON
Group Ine. (Magi), Information Interna-
tional Ine, (Triple I), Robert Abet &
Associates, Digital Effects. Per la mag-
gior parte del tempo al lavoro su un set
disadorno, con fondali neutri, le scene
sono poi tutte passate attraverso i com-
puter di queste aziende, con una post-
produzione durata più dì un anno.
Alla Magi di New York, i calcoli ne-
cessari per ogni fotogrammi di film erano
affidati a un sistema 3240 della Perkin
Elmer (due Mbyte dì memoria MOS e
due drive da 80 Mbyte) interfaedato con
un computer Celco CFR 4000, usato per
generare su monitor le immagini.
Alla Triple I, main computer era un
Foonley FI, le figure erano affidate a un
registratore PER, mentre i programma-
tori usavano una tavola grafica da 40 per
60 pollici (un metro per un metro e mez-
zo), Quattro sistemi Hewlett Packard
9826 calcolavano il tempo di esposizione
di ogni fotogramma, mentre unCinetron
1100 B muoveva la telecamera.
Alla Walt Disney, un sistema Univac
98/80 indicava dove ogni fotogramma si
trovava nelle SO fasi del processo di pro-
duzione, dal layout al negativo. E il col-
legamento via terminale tra le aziende
estere e la Walt Disney permetteva un
risparmio di tempo per correzioni e ag-
giustamenti calcolabile tra i due e i cin-
que giorni pieni. Per farsi un’idea della
mole di informazioni contenute in ogni
scena, basta pensare che per ogni scena
erano necessari dai 5 ai 75 milioni di cal-
coli, e che per formare un minuto di film
ci volevano 1240 fotogrammi.
Moltiplicate, gente, moltiplicate. E p
per cominciare, gustatevi il risultato del-
l’opera nelle immagini pubblicitarie in
Per ricostruire il mondo elettronico, la
Walt Disney si è affidata a quattro tra le
più importanti aziende di computer
graphic: Mathematic Applications
questo numero di Commodore Compu-
ter Club, per gentile concessione della
Walt Disney Corporation.
Utile accessorio per lare copie trarre ir» reqislraiore commc
dorè e un .■■eai3lraJo r e nomale Oi nasini protetti o con carica-
mento tu ito
Art. CD 102
Lr 30
DUPLICATORE PROGRAMMI
SV liner- IO InCrSpenKlO'le per la perfetta r&flOlaa-iÙftO dell 'AZI-
MUT nei fegislralori Commodore o compatìbili
Art. CD 105
L, 47.
KIT ALLINEAMENTO TESTINE
BATTERIA TAMPONE ANTI BLAK-OUT
ACCESSORI
PER COMPUTER
COMMODORE
INTERFACCIA RICEZIONE RADIO
COPIATORE PROGRAMMI
in dispensa Di e aceesso'ic per lare una copia ira mite due regi-
stratori commettere, nastri protem o cor canea mento iurte
Art. CD 103
L r 30. (KK
ELETTRONICA
Via Don Pasquino Borghi, 13
42017 NOVELLALA (Reggio E.)
Ccnleratofe baitela tampone
ariti BLAK-OUT
Art CD 117
L 25.000
interfaccia regisiraior*
Ari COIOÌ
L 30.000
Gommu latore Tv
arnennai'compjter
Ari. CD 100
L. 9 .&O0
Ta&IO RESET pér VÌC20&C64
Art CD 1ffl9
L 5.500
Cavo per TV con Ingresso
monitor
Ari CD 1 10
L. 19.000
Ccprilastierà >r plexiglas
Art. CD 750
L. t&.OOO
Cojprliastiera ir» stoffa
Ari. CD 755
L. 10,500
Borsa perii asporto C 54
e PEGlSTR
Art. CD 760
L. 29.000
Vaschetta per 90 floppy D
cor chiave
Art. CD 700
L. 45.000
Vaschetta per 40 floppy D
con chiave
Art CD 770
L 35.000
Tavola grafica SUPER SKETCH
per C 64
Art co m
L. 240. 000
Coni. 1 0 dischetti ODP 1 F 2D
Art CD 700
L. 15.000
Goni i d dischetti K E V-0 AIA
F2D
Ari CD 710
L- 40-000
Coni. 10 deschetti COLORATI
iFlD
Alt. CD 730
L. 45.000
Con- 1 10 dìscheiti
HOBBY -FLOPPY 1 F 1 D
Ari. CD 720
L. 2&.500
(nttefsnsabJe pei registrare su registrato** Commodore i pro-
grammi sceciah pe-' cc-movier trasmessi dalle eminemi rado
Art. CO 104
L. 30.000
ALIMENTATORE
Urlila, di alimenta i ione per C 64 e VIG 20 compitelo di mlerrultor e
por [litro di rete è scporeSsore di pmetviC&iìtrQ i disM&i editrici.
Predisposto per ballerie rampone anN BLAK-QllT l Art CD I07 i
Art- CO 106
Lr 07rOOC
BUS A QUATTRO SLOT PER VIC 20
Consente il mantenimento dei deli in memora ne< computer in
assenza di corrente e eltr ca ce T circa 30 minuti (da abbinerò e
alimentatore Art. CD 10&] Fom-bile anche senza batterie
Art CO 1171
Art. CO 107
L. 85.000
TUTTI I PREZZI SONO COMPRENSIVI DI IVA
NON SI ACCETTANO ORDINI INFERIORI A L 30.000
CONTRIBUTO RSSO SPESE DI SPEDIZIONE L 5.000
Amplia la pcsalùlna delia porta di espansione imo a 4 ingressi
sètotonabdi d cui uno ndmzzabile nel' area d memoria TOM
completo di tasio RESET
Art. CD'l
m
L. 55.000
BUONO DI ORDINAZIONE
VOGLIATE INVIARMI IN CONTRASSEGNO
NOME ■ COGNOME
INDIRIZZO
L
N
J
CAP
OTTA
J L
PROVINCIA
I I
N.
Art,
L.
N.
Art.
L.
N,
Art
L
SPESE SPEDIZIONE
L. 5.000
! j
PAGHERÒ AL POSTINO
L.
COMPUTER SERVICE VIA A. MANZONI, 49 - 42017 NOVELLARA (RE) - TEL. (0522) 661647
74 - Commodore Computer Club
Abitualmente ad ogni breve listato di
questa rubrica, è abbinato 11 testo corri-
spondente. In questa occasione abbiamo
deciso di incentivare Y interesse di voi let-
tori,. apportando una significativa modi-
fica, in ogni pagina sono poste da un lato
le piccole routine e dall'altro i rispettivi
testi messi in ordine sparso.
Starà a voi individuare i giusti accosta-
■
mentì tra listati e relativi testi,
Questa operazione metterà a dura
prova le vostre capacità di analisi di un
programma e non sarà obbligatorio av-
valersi di un computer per ultimare que-
sta operazione. Se siete sotto un ombrel-
lone o nella pace della montagna, muniti
solamente della vostra rivista e di un
blocco per appunti, potrete cimentarvi
con questa simpatica sfida che vi
proponiamo.
Lo spirito che anima la rivista Commo-
dore Computer Club di questo m ese, è la
sua possibilità di utilizzo anche a prescin-
dere dalla presenza della tastiera di un
calcolatore.
Questo mese la rubrica una riga si propo-
ne in una veste prettamente estiva,
Ciao. Una semplice e simpatica routine,
che vi saluterà facendo ricorso al lin-
guaggio macchina. (La redazione)
n
Ta bellina.
Questo
programma simula
una normale tabeilina pitagorica.
( Ferrer)
n
3
Miniscarabeo. Questo gioco necessi-
ta di almeno due concorrenti. Uno dei
due dovrà fornire, quando gii verrà ri-
chiesto, una parola di suo gradimento.
Ultimata questa operazione, Paltro par-
tecipante al gioco vedrà visualizzate le
tre prime lettere di questo vocabolo e in
base a queste cercherà di indovinarlo,
( Cutoio )
SI mi sordamente. Questa routine gè-
nera una sinusoide costituita unicamen-
te da asterischi, (Cosartela)
U S
Cursore mugico. Potrete ottenere de-
gli effetti magici tramite il cursore,
( Cosartela)
** e
Messaggi- Questa routine visualizzi:
tutti i messaggi del linguaggio BASIC.
i Cas urte Ili)
n 7*
Scacchiera, Questo breve programma
creerà una scacchiera sul vìdeo del vo-
stro Commodore. (La redazione)
Scalini. A cosa può servire un genera
tare di scalini? Probabilmente a nulla,
però è simpatico da ossevarsi. (La
redazione)
** 3
C ritto/scritto. Dovete fornire un nu-
mero compreso tra le IO e poi la parola
o la frase da crittografo re.
Se poi vorrete decodificare la frase
precedentemente introdotta, fornite il
medesimo numero, ma con il segno ne-
gativo, (La redazione)
t* 1 0
Cambia colore. Questa routine in lin-
guaggio macchina farà mutare rapida-
mente i colori del bordo de! Commodore
64. ( La redazione)
^ INPUT As INPUT A$:FQR X*ì TQ LE
N<A$) ;PRINTCHR$( < ASC CMID* ( X
, t ) } +A ) AND £55 ) ; - NEXT
E3
1 DIM FK10,I0)!FOR 1=1 IO 10iFOR
J = I TO 10: A< I ,J ) = I *J SPRINTACI
,J)? iNEXTJsPRINTiNEXTI
1 PRINTCHR*C14)+CHR*( 14?) iFQR A=
41118 TO 4 1787 :5=PE£K(A) : FRI NT
CHR*<S ) .« :NEKT
□
1 FOR T = 1 TO 360 STEP 28:L=SIN<T
Sii/ 188 >*10+20: PR INT TAB(L) :
NEXT: GOTO 1
1 FOR T= 1 TO 4 : READ S:PRINTCHR*t
S) SPRINT" tCLEARJ" : NEXT: RESTORE
:GOTO 1 : DATA 17£, 187, 190, 188
1 INPUT " PAROLA "? A* ! PR INT "CCLEAR
]" :PRINTLEFT*<A*,3>: IKFUT B*: I
F A*=B* THEN PR INT" OK " : GOTO 1
0
1 PR INT 1 * CRVS ) ’■ JiPOKE 646 , <A AN
D l ) + ( CTI/3E3 ) ANO 15>:B=B+
I+40#<B=33) s A=A + 1 + ( B=33 > * GOTO
t
H
1 A = < <N OR 3>/4) ANO HPRINTMI
□*< "tRIGHTHDOWNI " ,A + 1 , 1 >CHR$(
175-5#A) ” [LEFT1 " ; :POKE 646, REE
K < IS 1 ) : N=N+ 1 ! GOTO 1
1
1 PRINT TAB<£> "CIAO") : POKE 300, E
38 : POKE 901,3£:POKE 302,£0S:PO
KE 903 , 96 1 SYS90B : GOTO 1
*J
i POKE 49 15£ ,£38:P0KE 49153,32 :P
OKE 49 154 ,208: POKE 49155,76iP0
KE 49156,0: POKE 49 157 , 19£ì SYS4
9152
Commodore Computer Club - 13
i
** li
Reversc* Tramite questa routine, po-
trete porre in reverse lo schermo de]
vostro video, (La redazione)
n 1 e
Traccia circonferenze* Non è proprio
Giotto, ma pensando che il tuo computer
riesce a fare ciò con solo una riga di
programma, ogni imperfezione è scusa-
ta. (Francesco Sera)
** 1 ^
Capovolgi* Questa routine invene una
stringa tornita in input dal Putente, (La
redazione )
n 15
Variabili, Questa breve routine si può
rivelare utilissima, ponendola al termine
di un programma da voi utilizzato, vi se-
gnalerà tutte le variabili utilizzate. (La
redazione)
** 17
Coriandoli* Una cascata di coriandoli
sullo schenngìdel tuo computer. (La
redazione)
*+ le
Stampa casuale* Mediante l'istruzio-
ne RND, contenuta in questa breve rou-
tine, potrete stampare dei caratteri in
maniera casuale. (Bernardo NucceUi)
*t 13
** 13
1 &
- ai ~ . , cursore* rotmt decidere la velo-
Curiosità. Digitate questa una riga e Fondale. La routine in linguaggio mac- c jià di spostamento det vostro cur-
poi battete il comando LIST otter- china muta i colori del fondale del vostro sorfi tramite questo semplice una
rete uno strano effetto, f La redazione) Commodore 64. (La redazione) riga (La redazione )
K
R
1
POKE 4096 ,238 : POKE 409?,33iPOK
1 POR X = I 034 TO 30331 POKE X,C< N
E 4098, 3081 POKE 4039, 76: POKE 4
OT (PEEKOO) AND 13S) OR (137
100,0: POKE 4183,161 SY340S6
AMD PEEKOO >) :NEXT
u
G?
1
INPUT " tCLEAR I " ’X,YiFOR 9=1 ro
85 &TEP * 05 : POKE 10£4 + £0+CO3(
1 INPUT A$s FOR X=0 TO LEN(A*>-1:
4 ) *X + INT ( 32+S I N< A ) *Y)*40 ,3 1 INE
B$=E$+MÌD$(A$,LEN(A$)-X, I ) :NEX
XT
T SPRINTO*
M
1
REM ■■ iiwr r art
R
M
1
FOR A=8 ro 1 5 * POKE 646,A'B-INT
1 A = INT<RMOa >*1001 >:B = IMT<RNOU
vRFIHTI > *800 > ; FRI NT TAB<B )*•";
) # 17) 1P0KE ( 3033+A) , 1 03 s POKE (
NEXTiGDTO 1
55£3S + ft> 3 GOTO J
o
1
A=PEEK<45) +PEEK <46 ) *256 : B=PEEK
o
(47 ) +PEEK ( 48 ) *356 iFOft X=A TO B
o
STEP ?;PR INTCHR$(PEEK OO ) "CHR
1 INPUT "VELOCITA ' * i A : POKE 56335
tCPEEK < X + 1 ) > i NEXT
P
14 - Commodore Computer Club
KH
computer System
s.a.s. di Gloriano Rossi e C.
C.so Porta Nuova 46 - 20121 Milano
Tel. 02/6599547-6575 1 1 5
rivenditore amori zzalo
o Commodore
& ttalteIWIdDTfQgife]
C R
Software
i
Prodotti
Accessori
Assistenza
Assistenza software per Commodore, Sanyo, NCR, Sirius-Victor e tutti i
personal compatibili IBM- PC,
KHMODEM, il demodulatore ideale per la trasmissione e ricezione dei dati
(Baudot, ASCII, RTTY, CW).
Rivenditori di zona:
CREMA: EDP ANSWER di A. Guerci - Via Borleno 1 - Tel. 0373-59140
Schedina. Provate a fare tredici al toto-
calcio, mediante questa piccola routine,
(Le J redazione )
** si
Macchina, Una sìvpaticaiautovellura
percorrerà lo schamio del vostro Com-
modore 64. (La redazione)
u
9000 byte. Volete espandere la memo-
ria disponibile sul Commodore 64 a
90000 byte? Se lo desiderate dovete
porre in esecuzione questa routine
quando è visualizzato sul vostro televi-
sore il numero di byte liberi disponibili. Il
vostro ingegno potrà far ulteriormente
aumentare la quantità di memoria di-
sponibile. (La redazione)
Lucciola. Una lucciola si muove con an-
damento casuale sul video del vostro te-
levisore. (La redazione)
**
Esami* Questa breve routine, vi consen-
te dì conoscere la vostra media universi-
taria dopo che avrete sostenuto il prossi-
mo esame. Vi verrà richiesto il numero
degli esami sostenuti e la somma com-
plessiva dei voti conseguiti. In base a
questi 2 dati, vi verrà fornita la media a
secondo del voto che riporterete nel
prossimo appello. (Manna)
n ss
Meschino* Un monchino si m novera
pazzamente sul monitor del vostro tele-
visore, (La redazione)
Mare. Prima di porre iti esecuzione que-
sta breve mutine, vi consigliamo di inge-
rire delle pìllole contro il mal di mare.
(Bevilacqua)
** ^7"
Media aritmetica. L’una riga in questio-
ne, consente dì ricavare la media aritme-
tica di una serie dì dati impostati dall'u-
tente, (La redazione)
n se
Interrogate. Vi offriamo un mini moni-
tor, che consente dì visualizzare il conte-
nuto delle locazioni di memoria compre-
se tra due specifici indirizzi.
Inoltre verrà evidenziato il valore
ASCII di queste locazioni. (La
redazione)
1 INPUT A f B i POR K=A TC B s NNPÈEK <
K> :RRINTK?N;CHRSCN) SPRINTI FOR
F=i TO 1 00 s NEXTP s NEXTK • GOTO 1
U
t A*** 1_^« ID01HK5 LEFT 3 K -
O-O-' "SPRINT* tCLEAR ] " TAB<B }f\$B
$:IF A<255 THEN P=P+1:G0T0 1
n
v
1 PR I NT " £ HOME I [ 3 DOWN] [1 ? R I GHT ]
3S000*' '
kJ
1 :FOR 1=0 TO 9?iA$=
MID*CA$,7, 1 )+MID$(A$, 1 ,6>+MID*
<A$, 1 ,S) SPRINTA*; A*; A*JA*;A*:N
X
1 PR INT" £ CLEAR ] * ! PR INT "ESAMI " J : I
NPUT A:PRINT"VQTO"J s INPUT B*FO
R 1 = 13 T0 30 SPRINTI'*: " CI +B>/(A
+ 1 >*NEXT
Y
1 A*“ " £UP 3 £R IGHT] [ DOIJNJ [LEFT]” :P
R INT M LEFT HRVS3 *MID*<A*,RND<
1 >*4 + 1 , 1 DTLEFTI IRVS]*"J sFOR I
= 1 T0 30 s NEXT : GOTO 1
1 A = INT (RND ( 1 ) * 1 000 3 ! B= 1034 ! POKE
B+A,81:F0R T* 1 T0 200:NEXT:FR
INT* ICLEAR] " !S0T0 1
&
J INPUT "QUANTI NLIMER I " J Ni POR 1 =
1 TO N: PR INT "NUMERO " I J s INF UT V
sSsS+Vsf'EXT SPRINT” LA MEDIA E 1 E
RVS ] "S/N
i a*< 0) = ''X" i >= " i "i a*<£ :> = "2" s
PR INT" [OLEARI" SFQR 1=1 TO I3iA
=RND( 1 > #3 :PR INTASCAI JNEXT
Gii arcoppìam enrt sono pubblicati a pagina . 5 1
16 - Commodore Computer Club
STUDIO D
PER NON SMARRIRE MAI IL FILO DEL DISCORSO.
STUDIO D
EMITTENTI RADIOTELEVISIVE INDIPENDENTI (HE SI FANNO SENTIRE.
studio
d
CONCESSIONARI MEZZI
RADIOTELEVISIVI
STUDIO D
Via Rossini 5 - 20122 MILANO
Tel. (02) 799.59Z-782.503
.i V
È
Lari amia , questo numero
di htglio/ agosto
Commodore Computer Club è stato
da noi dedicato quasi completamente
ad allietare le vostre vacanze ; che siate
al lago , in montagna, al mare o chissà
dove altro , siamo sicuri che non vi
sarete fatti scappare l'amata rivista in
6
/
m
A
cv
ansia a spogliarne te pagine, euuene,
tutte quelle che seguono, contengono
articoli da leggere in tutta rilassatezza
ot
poi approfondirli con calma davann
alla tastiera e sassi e conchiglie,
oppure un robot fatto di scatole di
fiammiferi che imparano a giocare, le
parole crociate a tante altre cose
ancora \ Buon divertimento!
■
‘V m.
•• rcSZi ”, iì.Iì^ a». - <
L
5* JÌ*/'
Sfemw&m&M
mmmr-.'-
», wm
Wwte&
ma?:
H
Piu veloce dì molte calcolatrici elettroniche, V abaco è il più diffuso
utensile di calcolo di tutto l'est asiatico. Imparare ad usarlo non è
difficile: basta un po ’ di buona volontà ed un pizzico di pazienza
orientale , Ma noi vi proponiamo qualcosa di più. Certi che passerete
la maggior parte delle vostre vacanze mollemente sdraiati su qualche
spiaggia, mettete a frutto il vostro tempo: con dei sassi, o delle
conchiglie , o entrambi, simulate un abaco ed imparate ad usarlo.
Tornati in città f fate il diagramma di flusso e preparate un
programma per simulare su vìdeo il funzionamento del pallottoliere.
Il programma migliore sarà pubblicato su Commodore Computer
Club ed al suo autore verrà offerto in regalo . . . indovinate cosa ?
Un pallottoliere cinese in carne ed ossa l
RASSOMIGLIA al pallottoliere
col quale da bambini abbiamo im-
parato a contare e lo si ritrova in
numerosi paesi dell'Est, dalla Rus-
sia al Giappone.
L’abaco rappresenta V "appa-
recchiatura" più diffusa negli uf-
fici e nelle aziende cinesi. In tut-
ta la Repubblica Popolare non
e 'è ufficio od abitazione che ne
sia sprovvista e 0 suo uso é obbli-
gatorio nelle scuole elementari e
commerciali. Ovunque vada, il
cinese lo porta con sé e spesso
$fo*>sr
ì
m&mg?
ili
pallottoliere cinese
non riesce a contare senza questo
strumento, la cui utilizzazione è
semplice e fa concorrenza, dal
punto di vista della velocità di
calcolo, a quasi tutte le calcolatri-
ci elettromeccaniche.
Approccio
L'abaco si divide in due zone:
una superiore con due palline che
funzionano da contatori per le
cinquine ed una inferiore con cin-
que contatori per le unità, le de-
cine, le centinaia, le migliaia, i mi'
lioni, i miliardi, ecc.*
Per impostare un numero so-
litamente si usa: a) l'indice, b) il
pollice e Vindice, oppure c) il poi-,
lice, l'indice ed il medio. Il siste-
ma migliore sembra il secondo.
Il pollice serve per "aggiunge-
re' 1 i contatori nella zona inferio-
re (ossia spingerli verso la lìnea
di demarcazione); Vindice per:
a) toglierli, nella zona inferiore,
b) aggiungerli o toglierli, in quel-
la superiore. In particolare le ope-
razioni effettuabili sono:
1/ aggiungere uno o più conta-
tori;
21 toglierli;
3/ aggiungere un contatore di
cinquina e sostituire (togliere)
uno o più contatori d'unità;
4/ aggiungere un contatore d'u-
nità e toglierne uno di cinquina;
5/ togliere un contatore dalle u-
nità e posizionarlo al posto delle
(A) 2 + 1
3
(B> 2 + 6
6
(C) 2+4
1 i (D
6
decine (passandolo, cioè, nella
colonnina immediatamente più a
sinistra);
6/ passare un contatore dalla
posizione di decina a quella delle
unità.
L’addizione
Spieghiamoci con degli e-
sempi.
• 2+L Nell'esempio prima si
posizionano 2 contatori, quindi
si aggiunge una terza unità col
pollice,
• 2 + 6. In questo caso, si impo-
sta prima il 2 col pollice; poi si
posiziona con l'indice una cinqui-
na nella parte superiore e col pol-
lice una unità nella zona inferiore
(5 + 1 = 6). Il risultato è un con-
tatore di cinquina e tre unità
(5 + 3= 8),
• 2 + 4. Dapprima s’imposta il 2,
(posizionando col pollice due
contatori d'unità), quindi si ag-
giunge il quattro. Poiché nella co-
lonna non sono disponibili altri 4
contatori d'unità, si procede ag-
giungendo un contatore di cinqui-
na e togliendone in basso uno
d'unità (5-1 = 4)* Sulla colon-
nina resterà una cinquina più una
unità, ossia 6 che è il risultato ri-
cercato.
• 9 + 7, S'imposta il 9 (una cin-
quina e 4 unità), quindi si aggium
ge il 7. Questo, non essendo di-
sponibile nella stessa colonna é
digitato con un contatore di deci-
na nella posizione immediata-
mente a sinistra, meno tre unità,
sottratte al 9 già impostato
(10 - 3 — 7}* Sull'abaco rimarrà
11 risultato 16.
• 36 + 75. Per sommare numeri a
due cifre si opera da sinistra ver-
so destra, cioè dalle decine alle
unità. In questo caso, prima si
aggiungono le 7 decine di 75 ope-
rando come nell esempio d, quin-
di si aggiungono le 5 unità sem-
pre con lo stesso metodo*
Sottrazioni
• 10 - 3. In questo caso non ab-
biamo contatori d'unità, per cui
si procede togliendo il contatore
di decina e sottraendo da esso il
3 espresso nella forma -10 + 3*
Per l 1 occidentale l'operazione
sembra superflua, ma evidente-
mente le operazioni semplicissi-
me vanno fatte mentalmente e
visualizzate con l'abaco,
• 12-6. Come nel caso prece-
dente nella colonnina delle unità
non abbiamo unità sufficienti per
sottrarre il 6, che quindi viene
impostato come -6 = -10 + 4,
ossia togliendo il contatore di de-
cina ed aggiungendo 4 unità. Poi-
ché nella colonnina non sono di-
sponibili, queste vengono aggiun-
te con un contatore dì cinquina
meno uno d unità. L'operazione,
in termini algebrici, sì svolge nel
modo seguente:
12 - 6 “ 12 - (10-4) - 12 -
-110- (5- 1)1 - 6
• WO - 58. Operando con nu-
meri a due o tre cifre, si proce-
(D) ? ■+ 7
i t r
■
c
1
n
®t
p»
/ 6
(E) 3 6 + 75
e
— i —
il
J
Ij 2
f £
r
t - *
.■ i *
■
i
»
-X-
ore
\
i
1
1
J
n
P»<-
(0
fF) / 0-3
7
fC> / 2-6
□
1 1 ®
“5
'Di
i\ .
6
[Hi t 0 0-5 8
m
H
1
ti 2
de sempre dalla sinistra verso la
destra, In questo caso, prima si
sottrae il 5 di 58 dalle centinaia
(5=10^5), quindi sì sottrae
18 (-8= -10 + 2),
Un esercizio che ha impegna-
to tutte le generazioni di studenti
cinesi consiste nel sommare nove
volte il numero 123.456*789. Il
risultato corretto é 1.1 1 LI 1 1.101
dal quale successivamente si sot-
trae rrave volte consecutive
123.456.289 per ritornare al risul-
tato “0 f \ Se superate questo test
potete passare alle operazioni suc-
cessive.
22 - Commodore Computer Cfab
Moltiplicazione
Cominciamo dalla determina*
zione della posizione della cifra
delle unità nel prodotto.
1/ Nel caso in cui il moltiplica*
tore e un numero intero o mi-
sto (intero e decimale), bisogna
prima contare le cifre della parte
intera, quindi ci si sposta dim
numero uguale di posizioni sul-
la destra della cifra delle unità
del moltiplicando; l 'ultima posi-
zione trovata corrisponde a quel-
la delle ' unità del prodotto da
calcolare.
2/ 'Se il moltiplicatore è un de-
cimale e tra la virgola e la pri-
ma cifra significativa abbiamo
degli zeri si contano questi ul-
timi, quindi ci si sposta di un
egual numero di posizioni sulla
sinistra del moltiplicando fino
a determinare la colonnina delle
unità del prodotto.
3/ Se, infine, il moltiplicatore
é un decimale e non c'é alcuno
zero tra la virgola e le cifre si-
gnificative dell 'espressione, la po-
sizione delle unita del prodotto
corrisponde con la colonnina del-
le unità del moltiplicando.
Vediamo ora con degli esem-
pi come si svolge l'operazione.
• 67 x 2. Comparate l 'ultima ci
fra del moltiplicando (il 7 della
colonnina b del] 'esempio) con il
moltiplicatore 2.
2 x 7 dà 14, quindi, dopo aver
tolto 7 dalla posizione b sì mette
al suo posto 1 ossia la prima ci-
fra di 14 - e 4 nella colonnina al-
la sua destra (c). Successivamente
si passa all'altra cifra del moltipli-
cando (il 6 di 67) e, poiché 2xó
dà 12, si annulla il 6 della colon-
nina a e in sua vece si posiziona
ri di 12; il 2 dì 12 va posiziona-
to nella colonnina b, cioè va ad-
dizionato alla cifra che vi trovia-
mo. Sull abaco, leggeremo 0 pro-
dotto 134*
*9x7. In questo caso, sapendo
già che 9x7 = 63, si posizio-
nerà prima il 6 al posto del 9 ed
alla sua destra si metteranno i tre
contatori d'unità per il 3.
• 26 x 14. Nella figura corrispon-
dente vediamo che il
tore e un integrale a
quindi ci spostiamo di
zioni sulla destra delle unii
moltiplicando (colonna d).
Procedimento:
1/ Calcoliamo il prodotto dell'ul-
tima cifra del moltiplicando (col.
b) con la prima dei moltiplicato-
re (col* 1);
1 x 6 dà 6, quindi toglieremo il 6
dalla b e posizioneremo il prodot-
to sulla c;
2/ si calcola con lo stesso proce-
dimento il prodotto della secon-
da cifra del moltiplicatore (il 4 di
14) e poiché 4 x 6 da 24 si ag-
giunge il 2 dì 24 nella colonnina
c (dove già abbiamo un 6) e il 4
di 24 sul contatore immediata-
mente più a destra (colonna d);
3/ ora si riporta il risultato 2 di
ì x 2 nella colonna b, dopo aver
tolto il 2 del moltiplicando dalla
a. Infine si esegue mentalmente
Visualizzata nette sue tfnee di progetto grafico,
ecco ancora una dette scene det film Trarr.
(’djn> righi £ | Wall iMnt'v Fenduti idra
Commodore Computer Club - 23
riporta il prodotto 8
orina c. A questo punto
leggere sulFabaco il risul-
finale 364 r
• 6/8 x 345. Cominciamo con
la determinazione della colonnh
na delle unità del prodotto. Il
moltiplicatore e un numero inte-
ro a tre cifre, quindi contiamo
tre posizioni sulla destra a parti-
re dalla colonnina delle unità del
moltiplicando: la posizione delle
unita del prodotto corrisponde
alla colonna f,
11 seguente diagramma mostra
i diversi passi di calcolo da ese-
guire sull abaco:
Ecco un altro esempio. Vo-
gliamo moltiplicare 4,076x0,028
e come prima cosa determiniamo
la colonna delle unità del prodot-
67x2- f 3%
A B C D
r
à e
i
i
ì
i
1
—
l
Ì7
/ 2
/3&
9 * 7 - 6 3
A fi
t
D
— t
ì_.
i
i
■
o 3
? 6 / V * 3 6 U
x* i rt, [«. t. i* hu 2 a li r n
io. Come si vede, il moltiplican-
do ha uno 0 dopo la virgola e la
prima cifra significati va decimale;
pertanto, conteremo una posizio-
ne a sinistra della colonnina delle
unità del moltiplicatore (b), ossia
stabiliremo che le unità del pro-
dotto vanno posizionate in a. Ec-
co ora, la sequenza dei passi di
calcolo (indicati dal numerino
cerchiato):
lì
• Dopo esservi esercitati posi-
zionando nell'abaco sia il molti-
plicando che il moltiplicatore,
provate ad eseguire altri esercizi,
posizionando solo l'uno o l'altro.
I cinesi solitamente li tengono
entrambi in memoria, allo scopo
di rendere il calcolo piu veloce.
Divisione
Anche in questo caso, la pri-
ma cosa da fare é determinare la
posizione delle unità del quo-
ziente,
1/ Si contano le cifre della parte
intera del divisore e ci si sposta
d'un equa! numero di posti + l
verso la sinistra della colonnina
delle unità del dividendo deter-
minando, cosi, dove posizionare
le unità del quoziente.
2/ Se tra la virgola e la prima ci-
fra significativa decimale ci sono
degli zeri, ci si sposta verso la de-
stra della colonnina deile unità
del dividendo d'un egual numero
di posizioni meno una, quanti
sono gli zeri tra la virgola e la pri-
ma cifra significativa decimale.
Se, invece, tra la virgola e la pri-
ma cifra tra la virgola e la prima
cifra decimale significativa c'é un
solo zero, la colonnina delle uni-
tà del quoziente coinciderà con
le unità del dividendo,
3/ Se tra virgola e cifra decimale
significativa non ci sono zeri, le
unità del quoziente saranno posi-
zionate nella prima colonnina a
sinistra delle unità del dividendo,
Ecco ora alcuni esempi di cal-
colo.
* 93 : 3. In questo caso il divi-
sore è un numero intero ad una
cifra, quindi ci sposteremo sulla
sua sinistra di una. posizione + 1,
dove segneremo le unità del quo-
ziente (B).
Il procedimento per il calcolo
vero e proprio si svolgerà in que-
sto modo:
1/ Componiamo la prima cifra
del dividendo (il 9 della colonni-
na C) con il divisore 3 e, sapendo
che il 3 nel 9 é contenuto 3 vol-
te, posizioniamo il risultato 3
nella colonnina A.
2/ Moltiplichiamo il divisore 3
col primo risultato posizionato
nella colonna delle unità A del
quoziente (3). II risultato 9 va
sottratto al 9 della colonnina C
3/ Ripetiamo ['operazione con
la seconda cifra del dividendo (il
3 della colonnina D) e, sapendo
che il 3 nel 3 é contenuto 1 vol-
ta, riportiamo l'I nella B.
4 / Moltiplichiamo il divisore 3
per la seconda cifra del quoziente
1, quindi sottraiamo il risultato
dalla colonnina D. A questo pun-
to leggeremo il risultato 3L
24 ■ Commodore Computer Club
• 1476 : 12. In questo esempio
il divisore è un numero intero a
due cifre; quindi ci sposteremo
di 2+ I posizioni a sinistra delle
unità del divìdendo (colonnina F)
dove segneremo le unità del quo-
ziente. I passi di calcolo sono i
seguenti:
1/ Dividiamo la prima cifra del
dividendo (Fi di 1476) per la pri-
ma del divisore (Fi di 12) e sa-
pendo che 1 é contenuto nelLl
una sola volta, segnamo l nella
colonnina A* quale prima cifra
del quoziente.
2/ Moltiplichiamo 1 ' 1 di A con
la prima cifra del divisore (cioè
l'I di 1476). 1x1=1 che sottrar-
remo dalla colonna C.
3/ Moltiplichiamo il 2 della se-
conda cifra del divisore 12 perla
prima cifra del quoziente e sot-
trarremo il risultato (1x2=2)
dalla D ottenendo un nuovo divi-
dendo (276).
4/ Ripetiamo le operazioni col
nuovo dividendo; in particola-
re cominceremo col vedere
quante volte la prima cifra del
divisore é contenuta nella prima
cifra del nuovo dividendo. 2:1
dà 2 che collocheremo nella B r
quale seconda cifra del quo-
ziente,
5/ Moltiplichiamo la prima ci-
fra del divisore (1) per l'ultima
cifra del quoziente calcolato (2).
Il risultato sarà 2 che sottrarremo
dalla colonna D.
6/ Moltiplichiamo la seconda ci-
fra del divisore 2 per l'ultima ci-
fra calcolata del quoziente (2} e
sottraiamo il risultato (4) dalla
93+3- 3/
A B C D
14-16 + 12 — 1 23
bn
J u
posizione E r ottenendo il nuovo
dividendo parziale 36.
7/ La prima cifra del nuovo di-
videndo (3) contiene 3 volte la
prima cifra del divisore 1, Posi-
zioniamo 3 sulla destra delle cifre
di quoziente già calcolate (colon-
na C).
6/ Moltiplichiamo la prima cifra
dei divisore (I l dì 12) per l'ulti-
mo valore di quoziente trovato
(3} e sottraiamo il risultato dal-
la E.
9/ Moltiplichiamo il 2 della se-
conda cifra del divisore sempre
per l'ultima cifra del quoziente
provvisorio (3) e sottraiamo il 6
risultante dalla F. Leggiamo
quindi il risultato. Ecco schema-
ticamente la successione dei passi
descritti.
12 a b c o E F
J 4 7 6
1
— L
2 7 %
l
—2
__ —4
5 6
%
—3
—b
ì 1 3 0
* Un altro esempio: 638 : 22.
La prima cifra del divisore (2) é
contenuta nella prima cifra del
dividendo (6) 3 volte, per cui
riportiamo 3 nella colonnina A,
Moltiplichiamo questo risul-
tato per la prima cifra del diviso-
re (2x3 = 6), sottraendo 6 dalla
C; quindi per la seconda cifra (2)
1 risulta
del divisore. Il
drebbe sottratto dalla
colonnina D. Ma 6 è mag^P^
del 3 che vi ritroviamo; per cui
dobbiamo (a) scalare d*una uni-
tà la penultima cifra di quozien-
te calcolata, quindi (b) riposizìo-
nare un 2 della prima cifra del
divisore già moltiplicato per 3
nella corrispondente colonnina di
calcolo C; successivamente si
moltiplica la cifra di quoziente
corretta (2) che ritroviamo sulla
colonnina A per la seconda cifra
del divisore (2), 2x2 dà 4 che
posizioniamo sulla D per sottrar-
lo dal quoziente provvisorio
(238-040 - 198).
Dividiamo il nuovo dividendo
parziale (198) per il divisore (22)
e calcoliamo quante volte la pri-
ma cifra di quest'ultimo é conte-
nuta nella prima cifra (o nelle
prime due cifre del dividendo, se
maggiore). 18:2 dà 9 che segne-
remo sulla B, quale ultima cifra
di quoziente calcolata.
Moltiplichiamo la prima cifra
del divisore (2) per 9, quindi sot-
traiamo il risultato 18 da DE. lì
quoziente, come si vede dalla se-
guente ricapitolazione, sarà 29,
63U 4 - 12
ABC D li
22 fi j
3
b
— 6
3
— 1
Q
0
j
£.
i '
2
u
3
-4
a
7
fc.
0
i
6
1“
9
-ì
fl
-I
2
9
Capito tutto?
Certamente, con un abaco in
mano, vi sarebbe più facile eser-
citarvi. Se ne desiderate uno, non
vi resta che profittare delle pros-
sime vacanze e andare a comprar-
ne uno ... in Cina. m
Commodore Computer Club - 25
■
f:c *■
- réSRft? fcÉflfr
GIOCHI
Il computer
INTELLIGENTE
Ovvero come costruirsi
un robottino in grado
di imparare a giocare
Siete stesi sulla spiaggia e non avete niente da fare? Basta poltrire !
Andate a rubare dagli ombrelloni vicini tutte le scatole di fiammiferi
svedesi che potete , procuratevi forbici e colla e costruitevi IMP, il robot
pensante al quale insegnate a giocare alVesapedone e che dopo un po ’ vi
batterà con una regolarità esasperante.
1 1 campo di battaglia, costituito dagli
incroci di una scacchiera, è considerato
da sempre uno dei test più importami
delle capacità logiche di un essere
umano.
Il celebre maestro di scacchi sovietico
Botvinnìk, ipotizzò che con l'approssi-
marsi dell'anno 2000 sarebbe stato un
calcolatore elettronico il campione del
mondo di questa specialità. A causa della
sua affermazione, fu oggetto di una fero-
ce colica da parte degli ambienti scacchi-
stici intemazionali,
A distanza di parecchi anni, siamo in
grado di dirimere completamente l'argo-
mento della disputa? Almeno 3 motivi ci
spìngono a ritenere sensate le argomen-
tazioni di questo celebre maestro
sovietico,
• Un computer non è soggetto ad errori
di distrazione, come invece capita per
quasi tutti gli esseri umani,
• Può valutare rivoluzione delle varie
fasi dì gioco, ad una velocità assai supe-
riore rispetto a quella ipotizzabile per
qualsiasi cervello umano,
• Un calcolatore può apprendere dai
propri errori, modificando il suo com-
portamento nel caso che in un successivo
incontro si verificasse una situazione
uguale o analoga a quella attualmente in
corso,
I primi 2 punti non dovrebbero susci-
tare eccessivi dubbi nel lettore, mentre
potrebbero esìstere delle perplessità sul-
la veridicità della terza affermazione. La
possibilità di modificare il proprio com-
portamento, a causa di una determinata
esperienza effettuata, è sempre stata ri-
tenuta una prerogativa prettamente
umana,
Se toccando un recipiente bollente, un
bambino prova una sensazione di dolo-
re, nel caso che si riprescntasse una situa-
zione dei genere eviterbbe il contatto con
l'oggetto incandescente. Questo è un
semplice esempio di come, soprattutto
nella giovane età, lo sviluppo mentale di
un’individuo è connesso agli stimoli che
gli provengono dairambiente circo-
stante.
Il terzo punto delle precedenti argo-
mentazioni, inerenti al gioco degli scac-
chi, può presentare stratta analogie con
Fanalisi appena effettuata.
Se una macchina giocasse inizialmente
in maniera assai scadente al gioco degli
scacchi, ma avesse la possibilità di evol-
vere la propria tattica tramite le successi-
ve sconfìtte riportate, il suo processo di
miglioramento potrebbe non conoscere
limiti.
Per meglio esemplificare i processi di
auto apprendimento, affronteremo il te-
ma deiresapedone.
Abbiamo scelto questo genere dì gio-
co, perchè riteniamo, che seppur molto
semplice, sia indicato per la trattazione
dei processi di intelligenza artificiale.
La competizione si svolge su una scac-
chiera delle dimensioni di 3 caselle per 3,
con 3 pedoni situati su ciascun lato della
superfìce di gioco (osservate la figura 1).
Commodore Computer Club -27
GIOCHI
II gioco detf esapedone.
Gli spostamenti possibili sono solo
due:
* 11 pedone può muoversi in avanti di una
posizione,
« Un pedone può catturarne uno nemi-
co, spostandosi in diagonale. La cattura
di un pezzo provoca la sua immediata
esclusione dal gioco in corso.
La competizione ha termine quando si
verìfica una delle 3 seguenti eventualità;
* Uno dei 2 contendenti è impossibìlato
a muoversi senza contravvenire alle re-
gole precedentemente citate,
* Portando un proprio pedone sulla ter-
za riga avversaria.
* Catturando tutti i pezzi nemici.
La durata del gioco non può essere
naturalmente superiore alle 6 mosse
complessive, sommando quelle effettua-
te dai due contendenti.
Ora vi illustreremo un processo di auto
apprendimento, basato sul gioco
dell’esapedone.
Prima di addentrarci nella spiegazione
dell'argomento, è necessario munirsi del
materiale di cui faremo uso nel seguito
deH'articolo. Per costruire questa mac-
china pensante, non dovremo far ricorso
obbligatoriamente ad un calcolatore, ma
potremo avvalerci di semplici oggetti
presenti in qualsiasi abitazione
domestica.
Reperite 24 scatole di fiammiferi e al-
cune biglie colorate di dimensioni ridot-
te. Su ciascuna delle confezioni, deve
essere incollato uno degli scherni riporta-
ti nella figura 2. Adesso ponete m ognu-
na delle scatole di fiammiferi, un numero
di biglie pari alla quantità di freccette
raffigurate su] diagramma incollato nella
parte supcriore di ciascuna confezione.
Se ad esempio nello schema riportato su
una scatola sono presenti 3 frecce, dovrò
porre al suo interno 3 palline di colore
differente. Vi raccomandiamo dì abbina-
ci? - Commodore Computer Club
m
P
o
m
T
0
4
□
D
□
□
n
□
a
•
■ ■ ■ ■
<3
17
Si
©
a
s
0
4
d
o !
d
O
ra
o
t),
2
2
4
4
•
A
0
4
o
4
fi
P
•
9
©
o
4
□
n
m
o
i f
»•
c
o
4
ma
nn®
4 1 4
6
Ili
n
n
rr
Jm I j
nn®
®nn
lag
ir
4
n
4
JL
6
6
6
•>
m
o
©
4
6
$
»
m
4
6
Contrassegni delle scatole di fiammiferi deiHMP (i quattro diversi tipi di frecce rappresentano i
quattro diversi colori}.
re a cianumi delle ire passibili frecce,
una biglia di croma diverso.
Le operazioni preliminari sono esauri-
te. ora siamo in possesso di 24 scattile con
i rispettai diagrammi incollati nella parie
superiore e contenenti un numero di pal-
line pari a quello delle freccette.
La competizione com incera ira noi e la
macchina pensante (per rendere mag-
giormente familiare il rapporto con essa,
supponiamo di denominarla IMP, acro-
nimo dì “intelligente macchina pensan-
te"), Impostiamo la nostra prima mossa,
dopo di che spetterà a IMP effettuare il
secondo turno di gioco. Come avrete
senza dubbio notato, alla base di ciascun
diagramma, incollato sulle scatole di
fiammiferi, è riportato un numero (2.4
oppure 6). Poiché IMF gioca sempre per
seconda, queste cifre indicheranno tra
quali alternative, o per meglio dire con-
fezioni, è possibile scegliere in rapporto
al numero della mossa di gioco attual-
mente in corso,
Ad esempio, nel secondo turno, IMP
ha a disposizione 2 differenti scatole di
fiammiferi. Dopo aver scelto casualmen-
te una delle 2 confezioni, estraiamo da
essa una delle biglie ed effettuiamo la
mossa corrispondente alla freccetta abbi-
nata alla pallina. La biglia estratta, deve
essere posta al di sopra della scatola di
fiammiferi da cui è stata tolta.
Adesso toccherà a noi effettuare la terza
mossa. Dopo averla terminata, ìMP ef-
fettuerà il suo quarto turno di gioco. In
questo caso dovremo scegliere tra 11
possìbili scatole di fiammiferi ed estrarre
da una di esse una pallina colorata.
Dopo aver effettuato queste operazioni
ed aver eseguito la mossa corrisponderne
al colore della biglia, poniamo la pallina
al di sopra della scatola da cui è stata
precedentemente estratta. Effettuiamo
la nostra quinta mossa. Se non si £ verifi-
cata una delle condizioni che pongono
termine allò scontro tra i 2 contendenti.
IMP effettuerà il sesto ed ultimo turno di
gioco.
Le scatole a disposizione per la scelta
dell’elemenEo finale sono IL e sarà ne-
cessario ripetere una procedura del tutto
Commodore Computer Club - 29
una toga a quella che ha caratterizzato le
due precedenti mosse della nostra mac-
china pensante,
Adesso è termi nata [a partita e si pos-
sono natura liti e nte presentare due diser-
se eventualità:
# Noi siamo i vincitori
* Oppure ha vinto tMP.
Nel caso che vinca la macchina pen-
sante, riponete tutte le biglie estraile,
all'interno dèlie rispettive scatole di pro-
venienza. Se invece voi risultaste vincito-
ri, punite IMP confiscando la biglia che
rappresenta la sua ultima mossa e non
utilizzatela più nei successivi confronti.
ÀI contrario le altre palline estratte do-
vranno essere reinserite all'interno delle
confezioni da cui provengono.
Oneste competizioni dovranno essere
ripetute svariate volte e permetteranno
al nostra 1MP di eliminare tutte le mosse
che si sono rivelate fatali ai fini del risul-
tato finale del gioco. Seal termine di una
sfida, una confezione di fiammiferi rima-
nesse priva di elementi, dovreste elimi-
narla dalle successive competizioni e to-
gliere dal gioco la biglia dell'estrazione
immediatamente precedente.
La macchina pensante, che era iniziai-
mente incapace di giocare, escluderà,
progressivamente, tutte le varianti che la
hanno condotto ad una inevitabile
sconfitta.
E’ innegabile che IMP ha acquisito
esperienza facendo tesoro degli errori
passati, cosi come ima persona evita di
incorrere nuovamente iti situazioni che si
sono rivelate deleterie nel passato.
L’algoritmo che vi abbiamo proposto,
dovrebbe consentirvi di costruire un pro-
gramma di intelligenza artificiale, finaliz-
zato al gioco dell 1 esapedone, Le migliori
realizzazioni, dovrebbero consentire già
dopo circa 30 partite, di avere un pro-
gramma che gioca assai bene ad csapedo-
ne (vedere figura 3). L’acquisizione di
esperienza, lo renderà praticamente im-
battibile anche da parte di colui che ha
creato il programma.
Attenzione!! Lanciamo una sfida a
tutti è lettori di Commodore Computer
Club, invitandoli ad elaborare ed a in-
viarci dei programmi, che prendendo
spunto dall’algoritmo precedente illu-
strato, riescano ad elaborare un software
di auto apprendimento.
Ora che si avvicinano le vacanze, per-
chè non provate ad utilizzare il tempo
libero in montagna o sotto rombici lo ne.
dilettandovi con questa simpatica com-
petizione che vi abbiamo proposro?
Effettivamente la fase di comprensio-
ne dell’algoritmo e di successiva stesura
del programma, non necessitano obbli-
gatoriamente di un calcolatore. Alcune
scatole di fiammiferi, un po’ di palline
colorate e svariate pagine di un blocco di
appurili, vi permetteranno di passare al-
cune gradevoli ore in compagnia della
nostra amica IMP,
Desideriamo puntualizzare, che non
siamo interessati ad un programma che
giochi perfettamente sin dal suo primo
utilizza, poiché non sarebbe concernente
con l'argomento trattato in questo arti-
colo, l contributi di coloro che si volesse-
ro cimentare su argomenti differenti dal-
Pesapedone, risulteranno comunque
graditi.
Le migliori elaborazioni verranno
pubblicate sulla rivista e premiate con i
migliori prodotti della nostra casa editri-
ce. Non dimenticate che gli argomenti
analizzati in questo articolo, sono ogget-
to di approfondito studio da parte di co-
loro che si interessano dell'evoluzione
dell’ informatica.
Tutti coloro che hanno sempre ritenu-
to che Funico pregio di un calcolatore
possa essere quello di eseguire grossi
quantitativi di operazioni ad atta veloci-
tà, potrebbero risultare definitivamente
sconfessati.
I computer della quinta generazione
potranno acquisire esperienza dai propri
errori? E' ipotizzabile una macchina che
prenda autonomamente delle decisioni
importanti?
Questi sono alcuni dei temi dominami
il panorama informatico dei prossimi
anni.
Inevi Labilmente il problema adenti fi-
co e quello etico dovranno trovare dei
punti di riflessione comune, per evitare
che Tuonio risulti impreparato alla sfida
tecnologica dell’anno 2000.
IL ROBOT DIVENTA UN PERFETTO GIOCATORE
DOPO AVER PERSO 11 PARTITE j
Curva dì apprendimento dell'lMP notte prime cinquanta partite (i tratti inclinati in basso indicano sconfitta
q uniti in atto, vittorie.
30 - Commodore Computer Ctub
GIOCHI
Le parole incrociate
di Commodore Computer Club
Mettete alla prova la vostra conoscenza del computer con questo semplice
schema di parole incrociate. Siamo sicuri che la maggior parte di voi lo
risolverà molto facilmente!
soluzioni a pag< 5 1
ORIZZONTALI
l- Misura Ì3 numero dei caratteri di una
stringa. 2- Comando del C-16 con tre
argomenti. 4- Restituisce il contenuto di
una locazione di memoria. 5- Abbrevia-
zione lecita con cui assegnare il valore ad
una variabile numerica. 6- Prima parola
del messaggio di errore che compare
con: DIM A( 10000). 7* Dopo che il pro-
gramma termina. 8- Semplice messaggio
di conferma. 9- Dopo IF nel caso sia
diverso. 11- Genera un errore se privo di
fur. 13- Abbreviazione lecita per salto
incondizionato Basic. 14- Un linguaggio
oltre il Basic. 16- Vi è memorizzato il
Sistema Operativo. 17- A piitto che. 19-
Ordine di visualizzazione. 20- Sigla di un
noto circuito integrato del Vie. 21- Codi-
ce operativo, 22- Parente stretto del ciclo
FOR... NEXT. 23- Le tre voci elettroni-
che del Commodore 64 _
VERTICALI
1- Comando superfluo nei moderni lin-
guaggi Basic. 3- Arrossisce quando regi-
striamo. 4“ Un suo uso improprio combi-
na seri guail 8- Può esserci prima di un
salto. 10- Eseguire anche in altri casi. 12-
Lo sono, della memoria, le locazioni 55 e
56. 13- Sa Ita senza discussioni. 15- Ripor-
ta un programma in memoria. 16- Fun-
zione indispensabile per programmare
giochi alla roulette, 18- Abbreviazione
prima di un ciclo, 211- Abbreviazione del-
la piastra del comando iniziale. 20- Ab-
breviazione della piastra elettronica,
assinforma
presenta
NOZIONI ELEMENTARI
SUL PERSONAL COMPUTER
/ corsi $ì ripetono
con frequenza mensile
20 ore di corso pratico per imparare
ad usare e scoprire le potenzialità
dei voslri PC.
Centro slutìi Cambridge - T. 027496196
assinforma
presenta
WORLD PROCESSING
/ corsi si ripetono
con frequenza mensile
20 ore di corso pratico sol l'uso del W.P.
scopriremo le possibilità
del vostro computer
Centro Studi Cambridge - J. 0274961*96
r «
assinforma
presenta
PROGRAMMAZIONE
IN BASIC
i corsi si ripetono
con frequenza mensile
40 ore di corso pratico
per imparare a
programmare sul P.C.
Centro studi Cambridge - T. 0274961 96
assinforma
presenta
MULTIPLAY
/ corsi si npetono
con frequenza mensile
20 ore dì corso pratico sull'uso
del loglio elettronico
Centro studi Cambridge - T. 0274961 96
-k.
’ néc. assinforma
presenta
per aziende, studi, artigiani,
commercianti e privati
CORSI PRATICI SUL COMPUTER
[corsi sono di breve durata
e consentono l'aquisizione delle nozioni
elementari per strutturare a fondo
il vostro Personal Computer
Centro studi Cambridge - T. 027496196
Commodore Computer Club - 31
S ìa che ti trovi sotto l'ombrellone* sia
che ti riposi in un bosco, sia che sei in
casa a studiare per settembre (ahia!)
metti alla prova la tua confidenza col
computer.
Se possiedi un computer Commodore
dovresti rispondere correttamente al po-
mo gruppo di dicci domande ed al secon-
do gruppo che riguarda il tuo personal in
particolare.
Più ne indovini, meglio t. Il consueto
“punteggio” che viene abitualmente
pubblicato alla fine di ogni quiz che si
rispetti* nel caso presente non c T è.
Se proprio ci tieni a determinare il
punteggio relativo alla tua preparazione
in fatto di computer c'è un sistema più
semplice e.„ segreto: mettiti davanti ad
uno specchio e fatti Tesarne dì coscienza
(doppio ahia!).
Avvertenza superflua: alle domande è
necessario rispondere senza avere vicino
il computer, ma semplicemente immagi-
nando ciò che il computer risponderebbe
digitando ciò che le domande richie-
dono.
32 - Commodore Computer Club
GIOCHI
Primo gruppo di 10 domande
Nota bene: (R) = premere il tasto
Return.
1 - Provando a digitare:
PRINT VIVA LA PAPPA (R)
sì ottiene in risposta:
a/ SYNTAX ERROR
bf ILLEGAL GUANTITY ERROR
c/ 0
d / VIVA LA PAPPA
2 - Lanciando i! seguente programma:
IO GOSUB IO
sé ottiene in risposta:
a / Nessuna risposta perchè il programm
a “gira*’ all'infinito.
h/ Il Crash del sistema,
c / ILLEGAL OUANTITY ERROR
d/ OLITOF MEMORY ERROR
3 - Eseguendo Ostruzione:
PRINT CHRS( 10*20- 181)
si ottiene come effetto:
a/ Nessun effetto
bf ILLEGAL QUANTITY ERROR
e/ lì cursore sì sposta in alto a sinistra
di Cambia il colore del cursore
4 - Supponiamo che in una linea di un
listato Basic figuri l’istruzione END. Ov-
viamente, quando il programma la ^in-
contra”, si ferma e compare la parola
READY.
Se a questo punto digitiamo COWT
(R) si ottiene:
a/ CAN’T CONTINUE ERROR
bf ILLEGAL DIRECT ERROR
c / Il programma continua l'esecuzione a
partire dal l'istruzione successiva ad
END.
d / I! programma riparte nuovamente co-
me se fosse stato impartito il comando
RUN
5 - In un listato Basic vie la seguente riga:
100 INPUT A
Se (alla comparsa del punto di doman-
da tipico deiriNPU i ) rispondiamo pre-
mendo un tasto alfabetico e il tasto Re-
turn, succede che:
a/ Il programma si ferma con un SYN
TAX ERROR.
bf Compare il messaggio REDO FROM
START ed il programma si ferma,
c / Compare ìì messaggio REDO FROM
START e viene nuovamente posta la
domanda.
d / Alla variabile A viene associato il va-
lore nullo ed il programma prosegue
normalmente.
6 - Allo scopo di visualizzare un listato d
cento righe numerate da 100 a 20t
digitate:
LIST 100 - (100+100) (R)
L’effetto che ne risulta è il seguente:
a / SYNTAX ERROR
bf Viene visualizzata soltanto la riga 100
c/ Compare il listato e, subito dopo, un
SYNTAX ERROR
d / Viene effettuato il calcolo 100-
( 100 + 100 )
7 - L’istruzione LET è poco usata dai
Com modo nani perchè:
a i Tale istruzione non esiste nel set di
istruzioni Commodore.
bf E' un'istruzione superflua.
c / E' necessaria per definire funzioni
matematiche molto rare.
d/ Viene usata solo per trasmissioni via
modem.
8 - Nei computer Commodore vi sono
due set di caratteri: Maiuscolo - minusco-
lo; Maiuscolo - Semigrafico visualizzabili
solo uno alla volta. E’ possìbile visualiz-
zarli contemporaneamente entrambi?
a/ No, mai.
b/ Su ma ricorrendo alla tecnica della
ride fi razione dei caratteri,
c / Sì, a patto di costruirli uno per uno in
alta risoluzione
d/ Sì, ma rinunciando ai caratteri in Re-
verse e ricorrendo alla programmazione
dei caratteri.
9 - Ricorrendo all'istruzione POKE è
possibile, per errore, tentare di trascrive-
re un dato in una zona di memoria ROM
anziché RAM. L'effetto che ne risulta è
il seguente:
a / Si rischia di bruciare il circuito inte-
grato ROM interessato al! .operazione,
b / Si ottiene il Crash del sistema.
cf L’Istruzione viene eseguita ma il dato
non memorizzato.
d / Compare il messaggio ILLEGAI
OUANTITY ERROR.
Kl - I! microprocessore dei computer
Commodore "lavora” alla velocità di ol-
tre un milione di operazioni al secondo.
Col termine OPERAZIONE si intende;
a / La singola istruzione del programma
Basic,
b / La singola istruzione di programma in
Linguaggio Macchina.
cj Ciclo macchina del microprocessore,
d/ Calcolo di operazioni binane.
Secondo gruppo di domande
Commodore 64
1 - Per programmare correttamente un
suono è necessario settare nell'ordine:
a / Volume, A/D, S/R, frequenza nota
alta, frequenza nota bassa, tipo di onda,
numero voce.
b / Numero voce, frequenza nota alta,
frequenza nota bassa, volume, A/D, S /
R, tipo dì onda.
cf Qualunque successione purché il tipo
dì onda sia Fui timo POKE ddEimposta-
zìone effettuata,
d / Qualunque successione, purché il pri-
mo POKE sia quello relativo al volume,
2 - Per programmare uno Sprite sono
necessari 63 byte ed è possibile, quindi,
memorizzarne uno per ciascun gruppo di
64 byte indicando al C -64 (mediante una
POKE) il numero del blocco cui et
rife riamo.
Tenendo conto di quanto detto è pos-
sibile (senza ricorrere a "trucchi" parti-
colari) memorizzare uno sprite:
a/ In una qualsiasi zona di memoria.
bf Solo nell'area 49152 - 53248
cf Al massimo fino a 16348
d/ Ovunque purché ci si accontenti di
sprite non multicolor,
3 - Il reset software del sistema si ottiene
con:
a / SYS 49142
bf SYS 64738
Commodore Computer Club - 33
GIOCHI
e/ POKE0.0
d/ NEW
4 * Un vostro amico ha acquistato un
C ommodore 64 modello Executive, Non
vedete Torà di scambiarvi programmi e vi
recate a casa sua con le vostre cassette
ma* al momento di mettervi al lavoro, vi
accorgete che:
a / I due computer sono totalmente
incompatibili.
b/ Non è possibile caricare un program-
ma da nastro perchè l’Executive non pre-
vede il connettore del registratore,
c/ Alcuni programmi sembrano non gi-
rare correttamente.
d/ Lo scambio dì programmi avviene
regolarmente,
5 - Un vostro amico possiede un compu-
ter Sinclair Specrum e vi chiede di far
girare sul vostro Commodore 64 i suoi
programmi su nastro. Voi rispondete
che:
a / L'operazione è del tutto impossibile a
causa delia completa incompatibilità dei
due computer.
b/ L'operazione è possibile solo per pro-
grammi che richiedono una memoria di
tóK RAM.
e/ L’operazione è possibile perchè esì-
ste, per Commodore 64, il programma di
sì mutazione Spccfrom.
d/ L 'operazione è possibile purché i pro-
grammi siano scritti ìn Basic e non in
Linguaggio Macchina.
Commodore 16
ì - La zona di memoria video dei C-I6
occupa MXX) celle a partire dall'Indirizzo:
a/ 1024
b / 2048
c/ 3072
d/ 65536
2 - Un programma scritto in Basic utiliz-
zando un Commodore 64 ha molte pro-
babilità di girare sul C-16 a patto che:
a/ Non contenga istruzioni POKE, SYS,
PEEK
b/ Sia lungo almeno 20 lìnee Basic,
c / Venga compilato.
d/ Non contenga istruzioni PRINT e
INPUT.
3 - Un listato scritto con un Vie 20 oppure
con un Commodore 64 può essere trasfe-
rito sul C-16 tramite:
a / Registratore,
b/ Drive per minifloppy,
c/ Connessioni elettriche tra i due
computer,
d/ Interfaccia RS-232 C
4 - Prima di utilizzare le istruzioni grafi-
che in alta risoluzione è necessario:
a / Cancellare sia lo schermo "normale"
sia quello in alta risoluzione,
b/ Utilizzare l’istruzione GRAPHIC,
c/ Colorare di nero il fondo ed il bordo
del vìdeo.
d / Ricorrere alle istruzioni GOSUB c
COLOR,
5 - lì tasto HELP serve per:
a/ Rintracciare gli errori di program-
mazione.
h/ Per uscire dalle situazioni di pericolo
tipiche dei videogiochi.
cf Per seguire i corsi di auto-appren-
dimento al calcolatore,
d/ Ripristinare le condizioni iniziali ìn
caso di Crash del sistema.
Vie 20
t - Por riprodurre gli sprite col Vìe 20 è
necessario:
a / Aggiungere una scheda di espansione
di memoria.
b / Aggiungere una particolare scheda
grafica prodotta dalla Commodore,
c/ Non è possibile generare sprite col
Vie 20.
d/ Utilizzare un monitor invece di un
televisore.
2 - Per cambiare colore al bordo e al
fondo dello schermo c necessario utiliz-
zare le locazioni:
a / 36879 per il bordo e 36880 per il
fondo.
bf IL nibble alto di 36879 per il fondo e
quello basso per il bordo,
c/ Il contrario della risposta b.
d / fi contrario della risposta a,
3 - Il reset software del sistema si ottiene
con:
a/ Tasto Run/stop e Restore.
bf SYS 64802
c/ SYS 64738
d / NEW
4 - Col Vie 20 senza epansionì non è
assolutamente possibile:
a / Utilizzare il drive per minìfìoppy.
b / Utilizzare il joystick
zj Lavorare in linguaggio macchina
di Far girare programmi più lunghi dì
3K,
5 - Prima che uscisse di produzione, il
prezzo ufficiale, I V A, esclusa, dì listino
del Vie 20 (versione base) era dì lire:
a f 225CXXJ
h/ 199000
d 169000
d / 99 dollari perchè nel listino ufficiale il
prezzo è sempre espresso in dollari.
Le risposte sono a pag. 80
34 Commodore Camput ir Club
L’ UTILE
COMMODORE 64
«diamo come un programma BASIC è
me m orinato nella RAM del Cervellone
oh, pardon, del Computer. Il primo byte è
posto a zero, valore che corrisponde alla
fine linea BASIC; t successivi 2 byte ser-
vono da puntatori all'Indirizzo della linea
seguente (per linea mi riferisco sempre a
quella BASIC), gli altri 2 byte successivi
corrispondono al mimerò di linea, con la
classica legge del byte basso, byte alto.
Seguono poi le istruzioni Basic (ovviamen-
te Tokenìzzate*), con alta One un byte a
zero, che come già detto indica la fine del-
la linea.
Di tutto questo interessano soprattutto
il secondo e terzo byte (vedi Fig, I). Infatti
quando diamo il comando NEW, il calco-
latore azzera queste due locazioni di me-
moria per il semplice motivo che Ire zeri
consecutivi — per il Calcolatore stanno
ad indicare la fine del programma.
Vengono inóltre reini zia! «zzati i punta-
tori di pagina zero che contengono gli indi-
rizzi di inizio e fine programma Basic, di
inizio zona variabili e di inizio stringhe
(dal 45 al 52 vedi manuale CBM 64),
A questo punto credo sia chiaro che per
ritrovare il programma scomparso (ELlcry
Queen non c'entra} basta riuscire a riposi-
zionarc il secondo e terzo byte dei pro-
gramma e a riportare ai valori precedenti i
puntatori di pagina zero interessati,
È proprio quello che +s OLD” fa.
Viene prima ricercato lo zero indicante la
fine della prima linea (escludendo ovvia-
Come recuperare un
programma Basic
perso per un
accidentale New o a
causa di un ‘ crash 3
del sistema.
mente ì primi tre), dopodiché si scrive f in-
dirizzo successivo nei 2 byte che erano sta-
ti azzerati dal NEW (byte basso, byte al-
to), Fatto questo, viene la parte più lunga
del lavoro (ma a noi non interessa, perché
il lavoro lo la ‘Cervellone): bisogna infatti
ricercare la fine del programma "saltando 1
di indirizzo in indirizzo fino a che non tro-
viamo tre zeri consecutivi. È questo T indi-
rizzo che dobbiamo immettere nei punta-
tori Basic sopra detti ed avremmo finito.
J? uò comunque aiutare per comprendere
quanto detto far riferimento al listato As-
sembler. in esso vengono usati, come pun-
tatori temporanei, 4 byte di pagina zero
che, grazie a 'Mamma Commodore', non
vengono usati dal Sistema,
LINK
LENK
rfA
m
ISTRUZIONI
F° BYTE
II* BYTE
V
numero
DI LINEA
FINE
LINEA
il I* BYTE
FIG,1
Commodore Computer Club ■ 35
LUTILE
VEDUTA POSTERIORE C6M 64
RG.2
Come si usa
Per filli tizzo del Programma OLD ba-
sta, dopo aver digitato il listato BASIC {ed
averlo registrato, non si sa mai*}, dare il
RUN ed eseguire le istruzioni per lo stesso
programma. Infatti oltre a porre in memo-
ria la routine LM di OLD, viene anche
scritta una routine che salva su nastro o su
disco OLD stesso.
A questo punto non resta che, quando se
ne ha il bisogno {in caso di NEW acciden-
tali), caricare in memoria OLD nel se-
guente modo:
load “old'\ 8, 1 se da disco
ioad “old", 1, 1 se da nastro
e, alla fine del caricamento, digitare
"SYS 531 1 0' seguito dal RETURN.
13 a notare che se viene usalo il registra-
tore come memoria di massa si può omet-
tere il T, V nel caricamento in quanto il
programma viene salvato in maniera tale
che non venga rilocato. Bisogna stare at-
tenti a non commettere errori durante la
fase di digitazione dei comandi per carica-
re e far eseguire il programma OLD, per-
chè se ottenessimo un malaugurato
SYNTAX ERROR dovremmo dire AD-
DIO al nostro listato Basic. Questo per-
ché un tale errore sconvolge la RAM dove
risiede il programma Basic rendendo im-
possibile un suo recupero! All'inizio del-
V articolo ho detto che era possibile far 'ri-
sorgere' il programma Basic anche in caso
di ‘crash 1 del sistema (causato ad esempio
da una sys errata), e mantengo la promes-
sa.
In caso di "crash' bisogna fare in modo di
spegnere la macchina e riaccenderla senza
toglierle V alimentazione.
Come si può farlo in una macchina che,
come il CBM 64, non possiede un tasto di
RESET? Occorre portare a massa il terzo
PIN della USER PORI, che guarda caso è
il PIN di RESET.
In pratica basta far contatto con del ma-
teriale induttivo tra il 1 e il 3 PIN della
USER PORT- Tanto per intenderci si im-
magini di vedere il CBM 64 da dietro e si
faccia riferimento alla Figura 2.
! 000
; *
1010
r ajLr
> ♦
1020
1030
;*
1040
1050
;#
1060
; *
1070
;#
1 080
* yU i
1090
; *
1 1 00
> #
1110
1120
1180
;#
OLD
PERMETTE HI RECUPERARE UN
PROGRAMMA BASIC DOPO IJN
ACCIDENTALE COMANDO DI "NEW
DI
DERNI GIOVANNI
*
*
*
*
*
*
*
è
*
36 - Commodore Computer Club
1200
1210
1220
-
123G
1240
*=53
illO
;ESR ÌCF76
1250
ENEA
lS=*2D
i PUNTATORE FINE BASIC
1266
RAM-
$0800
; INIZIO RAM BASIC
1270
RR I UT =$AB 1 E
; ROUTINE STAMPA
1280 1 '
LEV
#5
, RICERCA PRIMO ZERO
1290 LOOP!
LEA
RAM , V
1 300
BEQ
ZERO
1310
I NV
1320
BUE
LGOPl
1330
RTh
1346 ZERO
IHV
; POSIZIONA I PRIMI ELIE
1350
STV
RflM+1
;evte bel programma
1360
LEIT
#8
; ALL/ INDIRIZZO SUCCESSIVO
1370
STA
RAM+2
; ALLO ZERO TROVATO
1330
1390
LEV
#8
; RICERCA FINE PROGRAMMA
1400
LDX
#1
1410
STX
#FB
1420
STV
$FE
1430 L00P2
LDX
$FB
1440
LEV
$FE
1450
STX
$FE
1460
STV
$FC
1470
LEV
#0
1480
LEA
(TFB> , V
1490
STA
tFE
1500
I NV
1510
LEA
<TFB ) ,V
1520
STA
$FE
1530
BNE
LOOP2
1540
LEA
$FD
1550
BNE
L00P2
1560
LEA
$FE
TROVATA FINE PROGRAMMA
1570
CLC
1 5S0
RDC
#2
1590
BCC
EXIT
1600
INC
$FC
1610 EXIT
LEV
$FC
1620
STV
ENBAS+1
; POSIZIONA PUNTATORI
1630
STV
EHEA3+3
1640
STV
ENBAS+5
; INIZIO VARIABILI
1650
STA
ENBAS
; INIZIO STRINGHE
16S0
STA
ENBA3+2
iFIHE BASIC
1670
STA
ENBAS+4
1680
4630
ì tifi
*<MSG
; STAMPA MESSAGGIO
Commodore Computer Club - 37
Teo Rusconi ha appena
sfatato la leggenda
secondo la quale i floppy disc
sono tutti uguali
Difatti sembrano tutti uguali finché non
si osserva con attenzione ìì jacket, Qui
termina fuguaglianza.
La maggior parte delle società costruttrici
sigillano i dischi un punto qui, un punto là,
lasciando parte dei lembi non sigillati.
Prima o poi ai lembi accadono cose
naturalissime: si gonfiano, si curvano, si
raggrinzi sco no... in poche parole si aprono*
GU ALTRI DISCHETTI
chiudi un panln dui,
un punto Ih lasci ano
gran pant dii
lembi aperti. _
DISCHETTI MEMOREX
cori lembi compLmirìtni*
saldali su tutta
Ih superficie.
È un sistema che consente al floppy disc
di sostenere ogni assalto, che impedisce alla
testina di rovinarsi e ai dati di andare perduti.
Il che sta a dimostrare che un floppy disc
Memorex non è uguale a tulli gli altri: è
migliore. E il sistema di saldatura c solo un
esempio della cura infinita con cui viene
prodotto ogni floppy disc Memorex; sia
esso da 8”, da 5 1/4” o il nuovo 3 1/2”
Questa estrema accuratezza dà la garanzia
che ogni disco Memorex è al 100% perfetto*
La prossima volta che acquistate un
floppy disc - o qualche centinaio ^ - i
- ricordate: non tutti i dischetti
sono uguali...
Memore a vi mette al
riparo da qualsiasi
inconveniente. r|HJ
Con penne, matite, unghie persino un
ragazzino di quattro anni come Teo può
infilarsi in quegli spazi apeni*
Naturalmente è un danno enorme perchè
se si inserisce qualcosa di molle e slabbrato
nel disc-drive quest’ultimo può incepparsi;
si può rovinare la testina e si possono
perdere i dati . Questo può accadere con gli
abituali sistèmi di chiusura ma non con i
dischetti Memorex che usa un
procedimento esclusivo chiamato
^Solid-Scam Bonding”,
Con questo sistema ogni sìngolo
millimetro quadrato dei lembi dì tutti ì
dischi Memorex viene sigillato
ermeticamente, rendendoli più rigidi e più
resistenti.
è importante
BUFI FLQUGH S-M EMOREX $.P. A .
Dfvi tiarlo Computar Media
Via Ciro Manotti. 14 Tel. G2/7135S1
20129 MILANO MI
A Burroughs Company
Concessionari
Memorex
Computer Media
COMPUTER MEDIA
10138 TORINO
Via Susa. 37 -Tel. 011/442261 -
441027
CO. FIN
13051 BIELLA (VC)
Via Repubblica. 33 - Tel. 01 5/30237
GIORGIO BRUZZONE
16152 GENOVA
Via Col di Lana, 5/19
Tel. 010/410719
LOGOTEC
20131 MILANO
Via Paci ni. 72 - Tel. 02/292677 -
235539
GASP!
20131 MILANO
Vra Pecchie. 1 - Tel. 02/225806
IL COMPUTER
26041 CASALMAGGIORE iCRj
Via Pozzi. 13 - Tel. 0375/41564
DAL GIN ELIO
31015 CONEGUANO VENETO (TV)
Via Manin. 59/ A - Tel. 0438/63144
R.ErSrCrO.
35027 NOVENTA PADOVANA l'PDj
Via Polatì, 6 - Tel. 041/415886 -
926988
CHI-BO
43100 PARMA
Borgo Antini. 3/G - Tel. 0521/207404
TRADER LINE
40133 BOLOGNA
Via Batt indarno, 12 - Tel 051/380255
IL CENTRO EDP
47100 SAN LEONARDO - FORLÌ
Via Arme limo, 19 - Tel 0543/728091
INFORMATICA
57100 LIVORNO
Via Scaiii deqli Olandesi. 54
Tel, 0586/30022
RIGHETTI
06100 PERUGIA
Via XX Settembre. 70
Tel. 075/6100072 - 6100226
PRISMA
60127 ANCONA
Corso Carlo Alberto, 12
Tel. 071/899282
MEMORY LÌNE
00162 ROMA
Via Nonientana. 224
Tel. 06/8320040 - 8320434
SYNCRON DATA
84100 SALERNO
Via Paolo de' Granita, 14
Tei. 089/241410
BYTFS HOUSE
90144 PALERMO
Via Vann'Anto, 28 - Tel. 091/291154
è importante scegli
A Burroughs Company
CopyTtjltl 1 É Wall |JÌMK\ PrrnJu. :
fiutte grìglia elettronica, prrwharu non bisogna tm-rudaftk olire moto. Succede net %itieognunes. lieti diverto le fiutino}
Sarebbe trovarsi ah' interna di ima (Mie mata, t? quello che succede & Fhnn. d piotti&mìma dt Triti i Che però alla fine -si
siih'ti, lj j danni degli altri da*' contendenti, il lieto fine t obbligatorio.
■H
1 REM **$***4-* ******$##:![******£
2 REM * OLD *
3 REM * DI t
4 REM « BERMI GIOVANNI f
5 REM * *
S REM * TEL . 0584720670 *
7 REM * V1508S47CBM 64 *
8 REM *************************
9 :
10 ME =6 79 l 1=0 : J=0
20 PRINT CHR*< 147); "ATTENDI ...■
30 READ A ! IF A<0 OR A>255 T
HEN ON SGN< A ) +2 GOTO 50,, 70
40 POKE ME+J , A i I = I +A i J=J+1 :
GOTO 30
50 IF I+AO0 THEN PRINT "ERRORE
DATA SAVE" : STOP
00 ME =53110 : 1=0 5 J=0 s GOTO 30
70 IF loft THEN PRINT "ERRORE D
ATA OLD" : STOP
30 PRINT CHR*< 147); "SALVI SU <N>AS
TRO 0 SU <0>iSCD I INPUT DE
*
31 IF OE* = "N'' THEN POKE 683, 1:
GOTO 35
82 IF 0E*O"D” THEN 80
35 SYS 679 : REM <C) BEAMI GIOVAN
NI
714 DATA 076,068,-5292
1000 ;
1010 REM DATI PROGRAMMA ‘OLD’
1020 :
531 10 DATA 160,005,185,000,008,240,0
04
53117 DATA 200,208, £48, 036 ,200, 140,0
01
531 £4 DA TA 008, 169, 003, 141 ,002,008, 1
60
53131 DATA 008, 162,001 , 134 ,253 , 132 ,2
54
53133 DATA 166,253,164,254,134,251,1
32
53145 DATA 252, 160,000, 177,251 , 133,2
53
53152 DATA 200,177,251,133,254,208,2
35
53153 DATA 165 ,253 ,£08 ,23 1 , 165,251,0
24
53166 DATA 105,002,144,002,230,252, 1
64
53173 DATA 252, 132, 046, 132, 048, 132,0
50
53180 DATA 133,045,133,047,133,043,1
68
53187 DATA £01 , 160,207,076,030, 171 , 1
47
87
88
500
510
520
679
686
693
700
707
PRINT i PRINT "FATTO !”
END
V
■
REM DATI ROUTINE 'SAVE’
*
■
DATA 169,003,163,162,008,032,1
36
DATA 255,169,003,162,201,160,0
02
DATA 032,189,255,162,118,160,2
07
DATA 134,251,132,252,169,251,1
62
DATA 000, 160, 208, 076, 216, £55,0
79
53194 DATA 01 7, 032, 083, 084, 065, 073,0
32
5320 1 DATA 065,084,084,069,078,084,0
79
53208 DATA 032,076,065 ,032,080,082,0
79
53215 DATA 083,083,073,077,065,032,0
36
53222 DATA 079, 076, 084, 065, 032, 033, 1
41
53228 DATA 14 1 ,03£ ,07 1 ,046 ,066 ,069 ,0
65
53236 DATA 078,073,032,052,047,057,0
47
53243 DATA056,052, 141, 15371
40- Commodore Computer Club
DIDATTICA
QUALSIASI COMPUTER
Come Realizzare
un Menu ’
T
a prima cosa che si trova sul tavolo, di
un ristorante, è il menù: un libretto sul
quale sono secate tutte le ‘specialità”
della casa ed in base al quale si farà La
propria scelta * mangereccia’*
Nel linguaggio deir informatica, il me-
nù ha lo stesso significato (con un po' di
elasticità mentale...). E' urta lista di
“compiti", che il programma è in gra do
di assolvere, tra i quali possiamo scegliere
Con la semplice pressione di un tasto,
Scopo di questo articolo è appunto
quello di spiegare come si può ‘creare” un
menù, passo dopo passo. Come esempio
supponiamo di voler fare un programma
che si occupi, dato un lato, dì calcolare
l'area di un quadrato oppure di un trian-
golo equilatero. In effetti, il compito del
programma può sembrare banale, ma
non vedo perchè complicarsi la vita (e la
digitazione) con programmi più eom ples-
si, di difficile comprensione e di... identi-
che finalità!.
Le formule usate, saranno le seguenti:
Area quadrato: lato X lato
Area triang. eq.: lato X lato X sqr(3)/4
in figura 1, è illustrato il diagramma a
blocchi che mostra lo schema principale
del programma.
Vediamo ora come realizzare, blocco
per blocco, le singole parti del
diagramma.
Visualizza il menu
C onte prima istruzione, digitate la se-
Tutti gli ingredienti, i
trucchi ed i
suggerimenti per
inserire nei vostri
programmi la
possibilità di scelta
tra numerose
opzioni.
guente linea:
100 PRIN'T CHR$(147).
Ora provate a dare il ‘■RUN 1 : lo scher-
mo sì azzera (—si cancella) e, in alto a
sinistra, compare la scritta 1 RE ADY % a
conferma che il programma è stato ese-
guito, L’istruzione CHR$(147), precedu-
ta da PR1NT, fa comparire sullo schermo
quel carattere ASCII corrispondente al
valore X assegnato. Nel nostro caso, il
valore 147 corrisponde all’ azzeramento
dello schermo, cioè, in pratica, è l'equi-
valente di ciò che si ottiene premendo
contemporaneamente i insti (SHIFT) e
(CLR - HOME).
Se sostituite il valore 19 al posto di “X"
in CHR$(X), ottenete l'equivalente del
tasto ( CLR - HOME): il cursore sì sposta
in alto a sinistra, senza azzerare io
schermo.
Continuiamo il nostro programma, di-
gitando ora le linee:
110 PR1NT‘* QUADRATO r
120 PR INT* TRIÀN.EQ* 2'’
dove i numeri 1 e 2 saranno i tasti da
premere per ottenere il calcolo relativo
alla figura geometrica desiderala).
Per vedere cosa succede, date tranquil-
lamente il ‘RUN 7 : in alto a sinistra com-
pariranno le scritte “QUADRATO I” e,
sotto, 'TRIAN.EQ. 2\ Questo sarà il no-
stro menù. In effetti, la visualizzazione
del menù deve anche soddisfare certe esi-
genze di carattere estetico (molto sogget-
tive!), per cui modificate le tre linee scrit-
te finora nel seguente modo:
Commodore Computer Club -41
DIDATTICA
START
Usura t
1 1N) PRINT CHR$( 147} CHRS( 17)
CHR$( 17) CHR$< 17)
1 IO PRINT SPC( 12} * SQUADRATO * 1 ’
M CHR$(18)" 1 “CHR$(17>
120 PRINT SPC{ 12) “TRJAN. EQ."
“HR$(l8r 2“CHR$(17)
Da quanto potete vedere, si sono intro-
dotti altri due valori X in CHR$}X). Il
valore 17 è l'equivalente del tasto (CRSR
- giù): in questo modo, nella linea 100,
oltre ad azzerare lo schermo, si dice an-
che ai computer di saltare tre righe TI
secondo valore, 1$, fa siche tutte le scritte
e gli spazi tra virgolette che lo seguono,
saranno stampate nel modo “REVER-
SE" (in negativo). Nei nostro caso, saran-
no stampati in reverse i numeri 1 e 2,
avvolti tra due due spazi anch'essi in re-
verse* Dal punto di vista estetico, questo
tipo di scrittura è molto usato e, fra Pai-
tro, mette bene in evidenza i tasti da pre-
mere per ottenere l’opzione desiderata.
L' ultimo comando da analizzare in
questa prima parte, è SPC( 12). Se date il
RUN, vi accorgerete da soli dell'effetto di
questa istruzione! Ora !e scritte non sono
più visualizzate al margine sinistro dello
schermo, ma sono spostate da esso di 12
caratteri (per fare altre prove potete cam-
biare questo valore con altri a vostro
piacere},
E f Ovvio che, come detto in preceden-
za, la gestione della schermala di ‘menù’
è soggettiva, perciò, con l'aiuto dei pochi
comandi visti finora, potete sbizzarrirvi a
stampare le scrìtte come volete! L'unica
Cosa che vorrei sottolineare, è che i co-
mandi CHR$(X) e SPC(Y) devono sem-
pre essere preceduti da PRINT, altrimen-
ti si ‘cade' in un SYNTAX ERROR.
Scelta
Dopo aver visualizzato il menù, dob-
biamo, far capire la nostra scelta ai com-
puter: cioè dobbiamo dialogare, tramite
qualche istruzione, col computer stesso*
incum ine mnm c«u la linea: 2U0 INPU T
R dove R sarà ta variabile che conterrà la
nostra risposta: se vorremo il quadrato,
premeremo il tasto 1 (e, subito dopo, RE-
TURN) e la variabile R assumerà di con-
seguenza il valore 1, mentre se vorremo il
triangolo, premeremo il tasto 2, e la va-
riabile K assumerà il valore 2*
Se ora fate girare il programma, sotto il
menù comparirà un punto di domanda e
di fianco il solito cursore lampeggiante:
questue l'effetto dell'istruzione INPUT*
Di seguilo, quando il programma in-
contra una INPUT, è di fermarsi, stam-
pare il “?’\ ed aspettare una risposta,
che deve sempre essere seguita dalla pres-
sione del tasto +RETURN.
urne prova, digitate I (o un altro nu-
mero) e premete il fasto RETURN (ope-
razione che d'ora in poi chiameremo sem-
plicemente: (RET): sullo schermo com-
parirà il consueto READY, ad indicare
l'avvenuta esecuzione del programma,
Una volta scelta l'opzione, il computer
deve essere in grado di identificarla e di
comportarsi di conseguenza. Questo può
essere fatto con istruzioni di tipo "logi-
co", che permetteranno al nostro “cer-
vellino elettronico" di agire in un modo
oppure in un altro (ricordatevi sempre,
comunque, che la logica è nostra, non del
computer: siamo noi che stabiliamo quel-
lo che deve fare!)*
L’istruzione atta a tale scopo, è
IF*,THEN: in pratica, dice che SE (IF) è
verificaia una certa condizione, ALLO-
RA (THEN) fai una certa cosa. Se la con-
dizione non è verificata, il programma
continua normalmente, elaborando,
cioè, la linea Basic successiva, senza
preoccuparsi deU'IF.,THEN.
Nel nostro caso, dobbiamo scegliere tra
il quadrato (R— 1) oppure il triangolo
{R=2}: possiamo farlo nei seguente
modo:
210 IF R=l THEN GOTO 500
220 IF R=2 THEN GOTO 600
■
*
*
w
500 PRINT “QUADRATO": END
600 PRINT “TRIANGOLA END
La linea 210 dice: se R=l, allora vai
alla linea 500, dove una routine si occupe-
rà di eseguire le operazioni sul quadrato*
La linea 220, è analoga.
In questo modo, abbiamo visualizzato
il menù ed operato la nostra scelta. Ma è
ancora troppo poco: un programmatore
deve prevedere anche i possibili errori
che si possono compiere nei dialogare col
computer.
L'errore piu banale, a questo punto, è
quello dì digitare un numero diverso da 1
o 2: in questo caso, non verificandosi nes-
suna delle due condizioni (R^l oppure
R=2), il programma fallisce
miseramente*
42 - Commodore Computer C idb
Quindi bisogna prevedere che se K è
diverso da 1 o da 2» occorre tornare indie-
tro e ripetere la risposta: si può ottenere
ciò con la linea
230 IFR < > I ANDR < >2THEN20O
Se R è < > 1 (diverso da I) e contempo*
rancamente (AND) < > 2, allora ritorna
alla linea 200, Tino a che la risposta non è
“accettabile” (I oppure 2), Provate ora a
dare il solito RI'N: rispondendo con 1
otterrete la stampa della parola
QUADRATO; premendo 2, otterrete
TRIANGOL.
Se poi premete* ad esempio* 3, otterre-
te di nuovo il ?* cioè il computer sta aspet-
tando ancora la risposta esatta* Dopo
ogni prova positiva il programma si “fer-
ma” (READY.) e dovete di nuovo dare il
RUN,
Provate ora a premere, invece di un
numero* una lettera qualsiasi: non vedre-
te comparire il solito READY ma la scrìt-
ta REDO FRGM START e sotto* di nuo-
vo il punto di domanda (?). Finché digite-
rete lettere* otterete sempre la stessa
scritta* In effetti* il programma non si
‘blocca’ {non segnala errori)* ma riceve
una risposta che non si aspettava (carat-
tere alfabetico invece che numerico) e ri-
sponde* quindi* con un ‘ripetere
dall'inizio’.
Di seguito se siete stufi del messaggio
REDO FRQM START* digitale pure un
numero e tutto proseguirà normalmente,
P
A . er capire cosa e successo* occorre
spendere due parole sulle “variabili”* os-
sia sui dati che introduciamo e che ci con-
sentono il ‘dialogo’.
Queste sono essenzialmente di due tipi:
variabili numeriche e variabili alfanume-
riche, Le variabili numeriche come del
resto dice il nome* sono variabili di tipo
numerico, ammettono cioè solo numeri.
Si possono indicare con lettere tipo R* S,
AA* Ai* eie, escludendo le var* ‘vietate’
(vedere art* ‘Sìntax Errori sul num, 17),
Le variabili alfanumeriche* ammettono*
oltre ai numeri* anche ìe lettere e i carat-
teri grafici* trattando tutto come caratte-
ri (anche i Numeri!): sì indicano con lette-
re seguite dal simbolo del dollaro ($). Dia-
mo alcuni esempi:
Var. Numeriche Var. Alfanumeriche
A = IO A$= “PIPPO”
AA= 1.8 AAS— “PLUT2034”
A2-.01 A2S= “12348”
(un discorso piò approfondito* sarà Tatto
in seguito)
Tornando al nostro programma, nella
linea 200 avevamo scritto INPUT R, dove
R è una variabile numerica. E’ ovvio* a
questo punto* die se noi inseriamo una
lettera al posto di un numero* il computer
ci segnala che non capisce cosa stiamo
facendo e ci ‘prega’ di ripetere.
Sappiamo tutti, che lavorando sulla ta-
stiera* è molto facile Toccare’ per sbaglio
un tasto che non “c’entra”! Si può preve-
dere questo tipo di errore e corregerio*
sostituendo la variabile R con la variabile
R$: cioè risponderemo con un carattere
anziché un numero. In questo modo, fra
l’altro* avremo a disposizione (per la no-
stra programmazione) praticamente tut-
ta la tastiera e non solo i 10 numeri (da 0 a
9 ).
Quindi* modifichiamo le ultime lìnee
nel seguente modo:
200 INPUT R$
210 IFR$= “1” THEN 500
220 IF R$= “2” THEN 600
230 IF R$< > “1” AND RS < > “2”
THEN 200
(dopo il THEN, non c’è bisogno del
GOTO)
L’unica differenza con le precedenti
linee è che ora PI e il 2 sono tra virgolette
{”): per quanto detto precedentemente,
PI e 2* sono trattati, come caratteri alfa-
numerici e non più come semplici nume-
ri, Quindi fatte le modifiche* potete tran-
p
qu illa mente premere t utti i tasti che vole-
te senza “rovinare” nulla.
Sembrerebbe così, che anche la parte
‘scelta’ sia terminata: chi non si accon-
tenta avrà notato però come l’istruzione
INPUT sia in grado di rovinare la scher-
mata del ‘menù’* riempiendo il vìdeo* in
caso di errori* di punti di domanda,
Esitono* ovviamente, metodi per tene-
re lo schermo ‘ pulito* (essenzialmente
consistono nel far tornare il cursore del-
I 1 INPUT sempre nella stessa posizione)*
ma* credetemi* non ne vale pena! Senza
nulla togliere all’istruzione INPUT (che
dà notevoli vantaggi in altri casi), penso
sia meglio ricorrere, per scegliere un’op-
zione del menù* all’ istruzione GET.
Provate subito questa linea:
1000 GET R$
e battete:
RUN 1000 (RET).
Vedrete comparire* istantaneamente*
READY: sullo schermo non è comparso
nessun punto interrogativo (?) e non c’è
stata alcuna attesa; il programma, come è
iniziato, è già finito! Ecco dunque una
prima differenza. Quando il programma
g ira e incontra un’Istruzione GET* se in
quel momento è stato premuto un tasto
accetta la variabile* attrimente prosegue.
La tecnica per far attendere il compu-
ter fino alla pressione di un tasto, è la
seguente:
1000 GET R$: IF R$T““ THEN 1000
Ora, se R$ coincide con un ‘niente’ (tra
le virgolette, poste l’ima dopo l’altra, non
c’è alcun segno), il programma ritorna
sulla linea stessa fi nebè non verrà premu-
to un tasto, permettendo al programma
di proseguire-
Per il C 16, la linea 1000 può essere
sostituita dalla seguente::
1000 CETRE Y R$
u n 'altra differenza tra INPUT e GET,
è data dai fatto che Input accetta le varia-
bili dopo che il tasto (RET) è stato premu-
to, quindi variabili costituite anche da piu
lettere (o numeri), mentre GET preleva
direttamente i caratteri mentre vengono
premuti (se si dovessero usare variabili di
i
più caratteri, adora diventa più comples-
so l’uso di GET ai posto di INPUT,
Visto che si sta parlando di differenze*
ce n’è un’altra che consiste nel fatto che se
volete uscire dal programma quando sie-
te in un istruzione GET* basta premere il
tasto RUN/ STOP e il programma sì fer-
ma; se invece siete in un’istruzione IN-
PUT, la pressione del solo tasto RUN/
STOP non è sufficiente. Occorre preme-
re* contemporaneamente, anche il tasto
RESTORE.
Tornando alla nostra ‘scelta’* ecco co-
me modificare le lìnee da 200 a 230 con
Commodore Computer Club - 43
DIDATTICA
*-
ruwdiGET:
200 GET R$
210 |FR$=“1” THEN 500
220 IF «$=*‘2” THEN «00
230 GOTO 200
(le linee 210 e 220 son sempre le stesse)
Nella linea 200 abbiamo sostituito il
GET al posto delPINFUT, Se le condizio-
ni dì 210 e 220 non sono verificate, il
programma arriva in 230 e da qui ritorna
a 200 finche la pressione del tasto ‘corret-
to’ non lo farà uscire da questo *LOOP’,
Operando in questo modo, editiamo an-
che i ciclo di attesa di linea 1000.
A questo punto, abbiamo visualizzato il
menù e abbiamo la possibilità di scegliere
l'opzione senza rovinare la schermata.
Non ci resta che costruire le routines
‘operative’.
Un altro modo per vedere ciò che ab-
biamo Tatto finora, è quello di osserv ane il
seguente schema che non è un program-
ma, ma una schema tizzazionc del pro-
gramma prima esaminato:
100 VISUALIZZA MENU’
*
V
200 SCELTA
210 SE 1 SALTA AL QUADRATO
220 SE 2 SALTA Al, TRIANGOLO
230 SE NIENTE, OPPURE ERRORI,
TORNA ALLA SCELTA
500 ESEGUE QUADRATO
510 RITORNA MENU’
■
*
600 ESEGUE TRIANGOLO
610 RITORNA MENU’
Tenendo presente tale schema, riscri-
verò, per comodità, tutto quello che è
Stato fatto finora. Voglio precisare una
cosa: le lìnee 510e 61Q, rimandano U pro-
gramma all'inizio, in modo da poter con-
tinuare senza dover sempre ribattere
RUN dopo ogni calcolo.:
Se RS^ u r\ il programma salta alla
linea 500 (routine Quadrato). I»a prima
cosa che succede, è che si azzera lo scher-
mo e compare la scritta “QUADRATO”.
La linea 5 10 ri rimanda al menù. La linea
505 serve come ‘I nte rrut to re* tra 500 e
510: il programma non passa in 510 fin-
ché non è stato premuto un tasto qualsia-
si, Questo ‘interruttore 1 è stato costruito
come la linea 1000 vista in precedenza: è
indispensabile agire così perchè, una vol-
ta operata la scelta da menù, il program-
ma salta al quadralo oppure al triangolo e
senza interruttore, ritorna immediata-
mente al menù.
Provate, comunque, a cancellare le li*
dee 505 e 605 e osservate la differenza.
Di seguito ricordiamo che per cancella-
re una Lìnea BASIC è sufficiente digitare
il suo numero e premere il tasto
RETURN.
Routines quadrato e triangolo
Occupiamoci ora di come risolvere il
problema del calcolo delle aree.
E* necessario predisporre un INPUT
che ‘riceva’ il valore del lato (per entram-
be le routines). Se guardate la Fig. 2,
vedrete come il problema è stato risolto.
E’ bene tener presente che alle righe del
listato di figura 2 vanno aggiunte le righe
da 100 a 230 del programma finora visto.
La maggior parte delle istruz ioni sono di
carattere ‘frivolo’: servono solo a centra-
re i vari messaggi ed a rendere la scher-
mata elegante fi). Una volta apparso il
risultato, per non fario scomparire Im-
mediatamente col ritorno al menù, ho in-
serito T interruttore’ di fmea SOS (che ora
diventa 570), Osservate la linea 520 (o
630), che riporto per comodità:
520 INPUT “LATO ”
Come avete notato, in una Istruzione dì
INPUT, si può inserire anche un messag-
gio, basta che questo sia trascritto ail’in-
Fie. 2
450 REM *****************
460 REM * rCNU ' : F IG . 2 *
470 REM *****************
480 ;
490 REM *** ROUTINE QUADRATO ***
500 FRINTCHR*< 147 )CHR$ ( 1 7 )SPC < 18 ) *
QUADRATO *
510 PRINTCHR* C 17>GHR*< mSPC<5};
520 INPUT "LATO 11 ; L
530 fìR*L*L
540 FRINTCHR^C 17)CHR$< t?)CHR*< 1?>S
PC <5 ) 1( L 1 AREA E 1 : JI AR
550 FOR 1=0 T0 5:PRINTCKR*( 17) :NEX
T
5B0 PR1NTSPC< 10) "PREMI UN TASTO"
570 GET A$iIF A$® 11 " THEN 570
530 GOTO 1 00
590 :
600 REM *** ROUTINE TRIANGOLO ***
S 1 0 PRIMTCHR*< Ì4?)CHR*( t?)SPC< 12) "
TRIAN.EQ"
820 PRirsTTCHR*( t?)CHR$<I7)SPCC5>l
830 INPUT "LATO *;L
640 AR*L*L*5QR(3>/4
650 FR1NTCHR$< 17)GHR*< 17)CHR*< 17>S
PC <5 ) "L 1 AREA E 1 t " AR
660 FOR 1=0 TO 5iPRlNTCHR*< 17) :NEX
T
670 PR1NTSPC (10 SPREMI UN TASTO”
680 GET AisIF A**"* THEN 680
690 GOTO 100
44 ■ Commodore Computer Club
temo di virgolette <“} e seguito da un
punto e virgola (;)* altrimenti il computer
segnata un errore di sintassi.
Quello che succede è che ora il punto dì
domanda (?) tipico deìPinpui, comparirà
di fianco alla parola LATO.
Inoltre la variabile rappresentante il
lato è indicata con la lettera L, lettera*
che caratterizza le variabili numeriche
(manca il delle al fan um eriche); quindi
il computerai aspetterà un numero. Cosa
c’è di strano, direte voi* dato che il valore
del lato da inserire è un numero? In effetti
non c’è niente di strano, salvo che cosi
facendo* non teniamo conto del fatto che
la nostre mani potrebbero cadere dovun-
que sulla tastiera* anche su 1 lettere’, con
il castigo della solita sgridata ‘REDO
FROM START’* e conseguente ‘abbrut-
tì mento* della v ideata.
Il tutto può essere superato* come visto
in precedenza* con l’uso di una variabile
Alfanumerica, tipo *L$’ la quale* però,
dopo I* INPUT, andrebbe ritrasformata
in numero*
Visto che quello che abbiamo finora
non è poco, preferisco rimandare il di-
scorso sull 7 INPUT ‘controllato’ ad un al-
tro numero della rivista.
Infine* se dovete inserire un valore del
lato che contiene decimali, ricordatevi di
usare il PUNTO al posto della VIRGO-
LA: se volete comunque provare ad usare
la {,), come: 5,3 otterrete il messaggio
‘EXTRA IGNORED', il che vuol dire che
i numeri dopo la virgola, sono stati igno-
rati (è stato accettato solo il 5* ed il risulta-
to sarà un’area di 25).
Per semplicità* vorrei ora riportare la
schema delle due routines:
Al STAMPA ‘QUADRATO'
A2 CHIEDE VALORE LATO
A3 CALCOLA AREA
A4 STAMPA RISULTATO
A5 ASPETTA LA PRESSIONE DI
UN T ASTO
m
*
#
*
RI STAMPA ‘TRIAN.EQ’
B2 CHIEDE VALORE LATO
B3 CALCOLA AREA
B4 STAMPA RISULTATO
B5 ASPETTA LA PRESSIONE DI UN
TASTO
Potete accorgervi facilmente come al-
cune parli delle due routines siano identi-
che. Questo suggerisce Pidea di creare
delle Subroutine che si occupino di svol-
gere quelle determinate mansioni, ritor-
nando poi alle routines principali*
Una Submarine è un sottoprogramma
che viene richiamato dall' istruzione GO-
SUB xxx* Quando il programma princi-
pale incontra un’istruzione GOSUR*
* prende nota’ della posizione di partenza
e poi salta alta Subroutine; segue poi
quello che la subroutine stessa deve fare e
ritorna al punto in cui aveva lasciato il
programma principale* Perchè ciò av-
venga correttamente* la subroutine deve
terminare con l'istruzione RETURN. Si
10Q REM *##*:***i****** ***
Ite REM * MENU’! FIG. 3 *
130 REM ********* ********
130 :
140 REM *** VISUAL IZZA MEMJ ’ ***
150 PRINTCHR*< 14?)CHR*< 17)CHR$< 17)
CHR*( 17)
1S0 PR I NTSPC C 12 ) “ QUADRATO "CHR$<!
8 ) * 1 "CHR$<17>
170 PR I NTSPC < 12 ) "TR I AN« EQ . ”CHR*<1
8)" £ ‘CHR*a7)
180 :
190 REM *** SCELTA ***
£00 GET R$
£10 IF R*="l* THEN £G0
££0 1F R4= "£ " THEN 300
£30 GOTO £00
£40 :
£50 REM *** QUADRATO ***
£60 PR INTCHRt < 147>CHR*< 17)SPC( 12) "
QUADRATO" 1GQSUB 340
£70 AR=L*L:GOSUB 380! GOTO 150
£80 :
£30 REM *** TRIANGOLO ***
300 PR1NTCHR$< 147>CHR$<17)SPC< 1£) "
TRIAN.EQ* iGOSUB 348
310 AR=L*L*SQR <3 >/4 iGOSUB 380: GOTO
150
3£0 :
330 REM *** IhFUT SUBROUTÌNE **#
340 PRINTCHR*<17)CHR$< 17)SPCC5)
i 330 INPUT "LATO °;L SRETURN
*' 360 !
370 REM *** RISULTATO ***
380 PR1NTCHR*( 17)CHR$< 17)CHR$< 17)S
PC <5 ) "L’AREA E’ i "AR
390 FOR 1=0 TC 35PRINTCHR*i: 17>:NEX
T
400 PRINTSPC< 10) "PREMI UN TASTO”
410 GET A*:IF A*="" THEN 410
420 RETURN
Commodore Computer Club ■ 45
DIDATTICA
possono anche creare Subroutine airìn-
terno dì altri sotto program mi, pero dove-
te sempre ricordarvi di ‘chiudere" ognu-
na di esse con RETURN, Se richiamate
più sottoprogranuni e vi dimenticate di
chiuderli, potete incappare in un errore
del tipo OUT OF MEMORY’ (non c'è
più memoria disponibile). Quindi, per
evitare il ripetersi di istruzioni identiche,
possiamo far us o di Suhroutmes che si
occupino delITNPlT, della stampa del
Risultato o della pressione di un tasto.
Lo schema andrà modificato in questo
modo:
Al STAMPA QUADRATO"
A2 GOSUB C1
A3 CALCOLA AREA
A4 GOSUBC2
A 5 RITORNA MENU"
«■
RI STAMPA ‘TR1AN.EQ’
B2 GOSUBCI
B3 CALCOLA AREA
B4 COSUBC2
B5 RITORNA MENU’
CI INPUT SL BROLTINE - RETURN
*
C2 STAMPA AREA - ASPETTA PRES*
SIONE TASTO - RETURN
11 tutto è realizzato nei programma di
FIGURA 3, che può essere ritenuto con-
clusivo, anche se è possibile andare oltre.
Per esempio, supponiamo di voler calco-
lare l'altl dì due quadrati.
Col nostro programma calcoleremmo
l'area del primo. In seguito dovremmo
tornare al menù, scegliere nuovamente
l'opzione 'quadrato' (premendo il tasto
1), e calcolare la seconda area. Ora, sa-
rebbe comodo poter calcolare la seconda
area senza ripassare dal menù, cioè ritor-
nare all'inizio delta routine quadrato (o
triangolo); lascio a voi il compito in modo
che vi possiate 'esercitare'.
Di seguito come aiuto, potete osservare
il diagramma a blocchi dì fig.4.
Infine un'ultimo esercizio: provate a
prevedere l’uso di un tasto che vi faccia
uscire definitivamentedal program ina!,
Giancarlo Castagna
46 - Commodore Computer Cfub
OLTRE IL BASIC
COMMODORE 16
Monitor lm
del C 16
uggendo i E itiii limite d'uso che ac-
compagna il C 16 ci si accorge faci lm ente
di piccole imperfezioni sparse qua e là.
La più grave è senza dubbio quella sul
comando del nuovo Basic 3, 5 ; Monitor.
Viene dello che tale comando ci porla
fuori dalP'ambiente" Basic e consente
di entrare nel programma monitor per
correggere e o scrivere programmi in lin-
guaggio macchina. Dopodiché l rovinino
testualmente Neri ito: Vedere Eri sezione
sui comandi ilei monitor per maggiori
informazioni \ Dov’é questa sezione?
Non e 'è.
I eco allora che ( ’ommodore Compii'
ter Club ha pensato di venire in aiuto ai
possessori di questo piccolo, ma polente
computer.
lì programma Monitor che è incorpo-
rato sul t 16, detto I EDMON da! nome
deinntegraio v ideo (TExt Display chip),
comprende, olite a! monitor per i! lin-
guaggio macchina* un miniassemhler ed
un minidisassemhler. Vediamo ora i suoi
comandi.
1 comandi
A — assemblei penne ite di assemblare
le istruzioni mnemoniche dello standard
MOS, quali: LDX. LDA. BIT. PHP.
e ce.
Le potenti istruzioni
incorporate nelle Rom
dell' ultimo computer
Commodore.
Sintassi: A indirizzo cod operativo
operando dove 'indirizzo’ è un numero
e sa deci ma le diesi riferisce a Ila locazione
di memoria in cui assemblare
l'istruzione.
Premendo <RETURN> dopo aver
scritto l'istruzione si passa automatica-
mente alla locuzione di memoria sueces-
si\;i Per uscire dall'assemblaggio è suffi-
ciente premere il tasto <RETURN>
senza aver scritto alcuna istruzione,
talpio:
Alitili LDA $PQ
C = compare: confronta due aree di
memoria e segnala le eventuali differen-
ze stampando sul video le locazioni di
memoria retalo e,
Sintassi: (' rm/inlarea line larea
inizìo2a rea
Anche in questo caso t parametri “ini-
zio la rea". "fine 1 area” ed "niiziii2area"
sono numeri esadecimali elle indicarlo le
locazioni di memoria in esame.
Esempio:
C UHM 2000 3000
D — disassembìy: disnssembln il lin-
guaggio macchina in mnemonico.
Sintassi: D inizioaren fi ne a re a con gli in-
dirizzi sempre in e sa deci ni a te.
Occorre notare che se omettiamo l'In-
dirizzo di fine vengono mostrale 20 istru-
zioni dopodiché si ha il ritorno del curso-
re lampeggiante,
Premendo D e <RETURN> si ha la
possibilità di vedere le 20 istruzioni suc-
cessi ve.. Se dopo aver disassemblalo
un’area di memoria cì posizioniamo con
il cursore sopra una istruzione e la modi-
fichiamo. premendo <REH’RN> si
entra automaticamente in modo
A Ksembly,
Esempio:
D UHM 1020
oppure
D HKM
F = fili: riempie un'area di memoria
con uno specìfico valore di un Byte*
Sintassi: f inizioarea Imearea valore
anche il valore come gli indirizzi che indi-
cano le aree deve essere in osa deci male.
Esempio:
F UHM) 21X10 FA
C i = GO 1 O permette di mandare in ese-
cuzione un programma ad un indirizzo
specificato
Sintassi: G indirizzo
Se si omette l'indirizzo l'esecuzione sa-
rà eseguita a partire dal corrente valore
del Program Counter (vedere comando
R).
Esempio:
G 1200
H = turno ricerca dei dati specificati in
una determinata area.
Commodore Computer Club -47
OLTRE IL BASIC
Sintassi: H inizioarea finta re a dati
ì dati possono essere sta valori esatteci-
mali, che stringhe alfanumeriche. Le
stringhe occorre siano precedute dall'a-
postrofo {ottenibile con <SHIFT-h7>).
Quando i dati vengono trovati entro l'a-
rea in esame si ha la stampa su vìdeo
degli indirizzi ricercati.
Esempio:
H 1000 2000 20 D2 FF
oppure
H E 000 FFFF ‘Commodore
L = load: carica da una memoria di
massa un file specifico.
Occorre notare che il programma cari-
cato in memoria sìa da nastro che da
disco, non viene mai rilegato. Si posizio-
na cioè nella stessa area di memoria da
cui era stato salvato.
Sintassi: L nomeprogramma,
numeroperiferica
Il nome del programma va scritto tra
virgolette (come in Basic) mentre il nu-
mero della periferica deve essere in
esadecìmale.
sempio:
L "PROVA C16”, 01 (carica da nastro)
oppure
L “PROVA C16’\ 08 (carica da disco)
M = memory: visualizza il contenuto di
un'area di memoria con una stampa su
video dei codici esadedmali e ASCII.
Sintassi: M inizioarea fmearea
Come per il comando D anche in questo
caso se si omette l'indirizzo di fmearea
saranno visualizzate % locazioni dì me-
moria (12 righe dì 8 byte alla volta) e
premendo M seguito da <RETURN> si
potranno vedere le % locazioni
successive.
Si possono cambiare i valori dei byte
esadedmali e confermare !a modifica
con il <RETURN>, In caso di errore,
causato o da un tentativo di scrivere sulla
ROM o da un codice inesistente, si ha la
visualizzazione di un punto interrogativo
subito dopo la locazione errata,
Esempio:
M 11 MÌO 21MX)
oppure
M 1000
R — register: visualizza i registri vitali del
microprocessore 7501 (non spaventatevi
anche se ha una sigla diversa in pratica è
come il famoso 6502) .
In particolare Vengono mostrati:
il PC, cioè il contatore di programma
lo SR, cioè il registro di Stack
10 AC, cioè l’accumulatore
11 XR t cioè il registro X
il YR t cioè il registro Y
10 SP, cioè il puntatore allo Stack
Sintassi: R ovviamente seguito dal ta-
sto <RETURN>.
E' interessante notare il fatto che è
possibile variare il contenuto dei vari re-
gistri nello stesso modo usato per variare
11 contenuto delle locazioni dì memoria.
S = salvare: salva il contenuto di un’arca
di memoria specificata.
Sintassi: S nomefìle, nem. periferica,
inizioarea, fmearea
Occorre notare che l'indirizzo di finca-
rea va aumentato di 1 rispetto all’area
dati che vogliamo salvare,
Esempio:
$ "C16 PROVA + \0l, 1000,2001
(salva l’area da $1000 a $2000 su nastro)
oppure
S "06 PROVA” ,08,3500,4000
(salva su disco l’area da S3500 a $3fff)
T — transfert: ricopia un'area dì memo-
ria in un’altra area specificata.
Sintassi: T iniziolarea fine larea ini-
zio2area dove 2area t quella dove andrà
a riprodursi l’area.
Esempio;
T 1000 2000 3000
oppure
T 5000 5500 1000
V = verify: confronta un file su nastro o
su disco con Parca di memoria in cui il file
sarebbe caricato. Se si ha una differenza
viene visualizzata la scritta VERI-
FYING ERROR,
Sintassi: V nomefile, nem. periferica
Esempio:
V "C16 PROVA'V.01
(da nastro) oppure
V "C16 FROVA” ,08
(da disco)
X — exit: esce dall'ambiente Monitor e
toma al Basic,
E T buona norma, una volta tornati al Ba-
sic, di dare il comando CLR che permet-
te di inizializzare il puntatore allo Stack.,
Sintassi: X seguito dal <RETURN>.
Memorili e locazioni
Adesso che siamo in grado di utilizzare
al meglio il programma TEDMON ve-
diamo di dare una sbirciatina alla memo-
ria del 06, A grandi linee la mappa dì
memoria del 06 è organizzata come in
ESA/DEC
NOTE
$0000/0
$07FF/2047
VARIABILI DI SISTEMA
! $08 00/2 048
$0BFF/307 1
AREA RAM COLORE SCHERMO
$0000/3072
S0FFF/4095
AREA RAM SCHERMO
$1000/4096 (INIZIO AREA RAM BASIC
$1800/8144
$lBFF/7 167
LUMINANZA BIT DELLA
MAPFA SCHERMO
$1000/7168
$lFFF/8 19 1
MAPPA COLORE SCHERMO
IN ALTA RISOLUZIONE
$2000/3192
S3FFF/163B3
AREA RAM SCHERMO HI-RES
OPPURE AREA BASIC
$8000/32768
$BFFF/49 1 5 1
INTERPRETE BASIC
$0000/53248
$D7FF/55295
ROM CARATTERI
$0800/55236
$FFFF/65535
ROM SISTEMA OPERATIVO
—
48 - Commodore Computer Club
OLTRE IL BASIC
figura 1.
Analizziamo ora più da vicino alcune
locazioni che possono risultare interes-
santi per determinate situazioni.
Innanzitutto t vari puntatori del Basic
sono rimasti i medesimi del VIC’ 21) e del
CBM 64 e cioè :
$2b-2c/43-44 = inizio area Basic
S2d-2e/45-46 = fine area Basic e inìzio
area variabili
S2f- 30/47-48 = inizio area Array*
$31-32/40-50 = fine area Arrays
$33-34/51-52 = fine area stringhe (N.B.
le stringhe vengono memorizzate a pani-
re dalla fine della memoria e andando a
ritroso).
Altre utili locazioni possono essere:
SOOca/202 — numero colonna in cui si
trova il cursore.
$0Qcd/2O5 —numero riga in cui si trova il
cursore.
E' da notare il fatto che se scriviamo:
POKE 202,2: POKE 205,10 sia in modo
diretto che in programma, avremmo il
risultato di posizionare il cursore alla se-
conda posizione della riga decima.
Avremmo così ottenuto il risultato di
un'istruzione del tipo PRINT AT non
disponibile nel Basic dei Commodore.
$0540/1344 = Flag di ÀUT0REPEAT.
Il Ctft ha già la ripetizione su tutti ì
tasti e questo a volte può non essere desi-
dera to. Allora ecco che conoscendo que-
sta locazione di memoria è possibile disa-
bilitare la ripetizione dei tasti fa parte la
barra spaziatrice, il Delcte, ecc,} I valori
da immettere in questa locazione sono:
12K per avere la ripetizione su Lutti i tasti
e 0 per disabilitarla.
$0543/1347 — Flag per il controllo dei
tasti SHIFT. CTRL e COMMODORE.
] valori preeisi sono:
1 -> Tasto SHIFT
2 -> Tasto COMMODORE (in basso a
sinistra)
4 -> Tasto CTRL
U na utilizzazione di tale locazione può
essere quella di attendere che sia premu-
to uno di questi tasti per andare avanti
nell'esecuzione del programma.
Esempio: 30 W A IT 1347,1
attende fino a che non si preme II tasto
SHIFT.
$t)Oef/239 = numero di caratteri nel buf-
fer di tastiera.
Permette di forzare i caratteri nel Buf-
fer (posto da $11527/1319 a $(1530/1328) e
alla fine di scaricarli su video. E' un (Tac-
chetto mollo spesso utilizzato per vane
situazioni (vedi DATA MAKER per
CBM 64 e VIC 2(1),
(Giovanni Brani
rruLULjye in luh tSStiera
dalla polvere
COPRI TASTIERA
IN PLEXIGLAS
PER: VIC 20,
C.16,
La puoi avere per sole
L. 15.000 Iva compresa,
escluso spese postali
per pagamento
contrassegno (L. 2.600)
comprese se con vaglia
anticipato.
PLEXIDATA
43040 - VARANO MELEGARI (PR)
s 1
i Sig. “ — - — —
i
i
I Via — —
i
NUMERO PEZZI ORDINATI
1 (IN LETTERE)
I I
I 1
I - 3
L — - 1
GIOCHI
COMMODORE 64
ài Giancarlo Castagna
M ar/io, dopo un lungo periodo di
letargo' e dopo essersi visto per i ‘ennesi-
ma volta allo specchio, decide di fare un
pò di sport. Pensando che nel periodo
estivo passa sempre qualche giorno in
montagna e che gli piacerebbe fare qual-
che arrampicata un po 1 seria (con l’aiuto
di una guida, ovviamente), decide di ini-
ziare i propri allenamenti su una specie di
spalliera svedese. Lo scopo che si prefig-
ge è quello di percorrere più volte il 'qua-
dro\ lasciando dietro di sà delle palline,
in modo da capire quando l’intero per-
corso è stato ultimato-
Purtroppo, si accorgerà presto che le
cose sono più complicate di quello che
pensava! Difatti, sullo stesso percorso,
incontrerà altre persone non proprio
educate, che continueranno il torti alle-
namento senza preoccuparsi della sua
presenza. Sta quindi a luì cercare di
evitarle!
Sia bene inteso che nessuno insegue
Marzio, ma che tutti, poma o poi, se non
starà più che attento, sì scontreranno con
lui, trascinandolo "fuori pista'.
Inoltre Marzio ha a disposizione solo
tre prove.
Come si gioca
Scopo del gioco è guidare Marzio
(spritc nero, inizialmente in basso a de-
tra) lungo il percorso, con Faiuto del
Joystick in port 2.
I quadri da completare sono quattro,
dopodiché si proseguirà sempre con la
configurazione del quarto.
Gli avversari da evitare vanno in ordi-
ne crescente con il numero dei quadre
(primo quadro I, secondo 2, terzo 3 e
quarto 4).
Tutti gli spritc ‘nemici’, seguono per-
corsi prestabiliti a voi sconosciuti: quan-
do li avrete scoperti, alla vostra abilità si
dovrà aggiungere anche una certa strate-
gia per riuscire a terminare il percorso
senza subire danni!
Alla fine dei gioco, premendo il tasto
Y si ricomimcia, prc mando N si esce.
Nel digitare il programma, non è ne-
cessario battere le lìnee REM, in quanto
ad esse non si fa riferimento,
El programma
II Problema da affrontare è quello di
far muovere lo spritc (Marzio) su un per-
corso stabilito, facendogli lasciare, con-
temporaneamente, una scia.
Se qualcuno ha letto gli articoli pubbli-
cati sui numeri 17 e 18 della rivista riguar-
danti la gestione degli spritc, saprà che
esistono due registri che si occupano del-
la collisione tra spritc e della collisione
trasprite e fondo.
Un ‘ ‘ percorso di
guerra” per
riprendere la forma
prima delle ferie.
50 - Commodore Computer Club
GIOCHI
Ripetiamo comunque, per chi non lo
ricordasse, alcune informazioni dì carat-
tere generale. I due registri sono:
53278 collisione tra sprìte
53279 collisione tra sprite e fondo
Il registro 53278 è quello che fa per
noi, in quanto permette di determinare
la collisione tra Marzio ed un qualsiasi
altro sprite, Il secondo registro invece
non è a ssol ut ameni te in grado di capire
qual è il carattere entrato in collisione
con lo sprite e non ci è di alcuna utilità.
Per far muovere Marzio su un percor-
so prestabilito, è necessario sapere qual è
il carattere che sta sotto di esso e, per
fare questo, occorre sapere in che loca-
zione dello schermo si trova il carattere
stesso (dopodiché, basterà una semplice
PEEK...)
Per un gioco del genere lo sprite si
deve muovere dì 8 pixel alla volta, sia in
orizzontale che in verticale (difatti, un
qualsiasi carattere è fatto da una matrice
diS x8 pixel),
IL tutto t stato risolto in questo modo:
una volta costruito il 'quadro', si centra
la ‘pancia' di Marzio nella posinone di
partenza e si calcola la locazione di scher-
mo proprio sotto la pancia (1931). Per
fare questo, può essere utile riportarsi lo
schema del gioco su un foglio a quadret-
ti: ogni quadretto, è una locazione di
schermo.
GIOCHI
Le soluzioni
1 =I;2 = B;3=F;4 = D;5=E;
6 = C;7 = G;8 = H;9=A;
io = J; 11 = P; 12 = L; 13 =M;
14 = Q; 15 = O; 16 = K; 17 = N;
18 = R; 19 = S;20 = £;21 = U;
22 = V;23 =Z;24 = X;25 = Y;
26 = W ; 27 = &; 28 = T,
Quando col Joystick si sposta lo sprite
ve reo sinistra (o verso destra), per vedere
qual è il carattere X-esimo sotto di esso,
basta decrementare (o incrementare) la
locazione iniziale di 1 e leggere, con una
PEEK(X), il suo contenuto. Se invece lo
sprite si sposta verso Paltò (o verso il
basso), occorre decrementare (o incre-
metare) la locazione iniziale di 40.
Nel listato, il procedimento sopra de-
scritto È fatto nelle linee da 510 a 540, le
quali, con un GOTO e un GOSUB, fan-
no saltare il programma alle linee 1500 -
1530.Queste ultime si occupano di con-
trollare il carattere al di sotto della "pan-
cìà di Marzio,
Per muovere lo sprite su! percorso del
gioco non occorre, in effetti, sapete qual
è l'esatto carattere sotto di esso: quello
che ho fatto, è stato controllare sempli-
cemente che non si tratti del “vuoto' 1
CHR$(32). Se si tratta proprio di questo.
Variabili
QU : quadro
VJ : vite
PU : punti
PÀ : punti fine quadro
XY : locazione schermo
X, Y : coord. Marzio
XI, YI;X2,Y2: coord. sprite
X3,Y3;X4,Y4 : coord. sprite
si pone una variabile K uguale ad uno e,
nelle linee 1010 1110 - 1210 - 1310, si
annullano gli incrementi (o decrementi)
sia delle locazioni di schermo che delle
coordinate dello sprite, in modo che lo
sprite stesso non subisca spostamenti.
Nella linea 1510, oltre a controllare
che il carattere sotto lo sprite non sia il
32, si controlla anche che non sia 1*81
(CHR$ COm spenderne al pallino pieno:
rappresenta la “scia* 5 ).
Tenete comunque presente che gestire
5 sprite in Basic comporta una certa len-
tezza: il metodo descritto sopra, è quello
che, a mìo avviso, ‘lumachizza' al mini-
mo (nei limiti del basic), i vari movimen-
ti. Per quanto riguarda il ‘resto" del pro-
gramma, non dovrebbero esserci grossi
problemi. Per facilitare comunque la let-
tura, ecco la lista di tutte le variabili con il
loro valore iniziale:
Valore iniziale
1
3
0
0
1931
vedi linea 400 - 410
vedi linee 400 - 410
vedi linee 400- 410
Commodore Computer Club - 5 1
GIOCHI
i
i
Sì
f ,e figure, mostrano con» procedere per individuare ti carattere sotto lo spnte:
schema A - per spostamenti verso sinistra
schema fi - per spostamenti verso l’alto
SCHEMA E
I REM ***********************
S REM * COMMODORE 64 *
3 REM * *
4 REM * MARZIO *
5 REM * *
6 REM * G 1 ANDARLO CASTAGNA *
7 REM ***********************
8 :
9 t
ì 00 PRIMI” [CLEAR 3 [DOWN 3 " S V I “3 l QU= 1
SGOSUB £000
110 FOR 1=0 IO 62! READ A s POKE 1288
8 + 1 r A ! POKE 1 £338 + 1 , A ! POKE 1241
6 + 1 , A
120 CK=CK +A s NEXT
130 IF CK < >5343 THEN PR INT "ERRORE
NEI DATA 3PR1TE 1 2 3" ! END
140 FOR 1=0 TD 62 ? READ BiPOKE 124B
0+ I ,B I POKE 12544+1 ,BtCH=CH+B!N
EXT
150 IF CH05BI4 THEN PRIMI "ERRORE
NEI DATA SPRITE 4 5": END
193 i
£00 A t$= "II ARANO 3 I 1 *
1 P : REM [ C 3 +Q ; [ SH 3 + *
; CSH3 + + J E C 1 +14
210 A£*="tARANC3 \ t 1
| l*i REM [SH3+B
220 A3*=" III)
|"l REM CSH3+B
£30 A4S=" i 1 1 1
i [CELESTE] "l REM [C3+2;[SH3
+ ** CC3+EI CC3+X
£40 PR I NT " C CLEAR 1 1 DQhN 3 " s POKE 5323
0,1 1 ; POKE 53261 ,11
£9,7 REM ********************
£38 REM * PROGR. PRINCIPALE *
£39 REM ********************
300 FOR 1=1 TO 3SPRINTA2*iPRINTA 3*
: PR I NT A 1 * : PR I NTA2 S l PR I NTA3*
310 PR INTANI NEXT :PRINTA2$:PRINTA3
*ipRIWTA4$
320 PRINT” (HOME 3(8 DQWNJ 1 * 3 4 5 6 7 8 9 SPC C30 > " t
MERO 3 QUADRO- [CELESTE 3 * * G03UB
3600
52 - Commodore Computer Ctub
GIOCHI
330 PRINT" 13 OGL'f'i ] "SPC <3 1 > ’ [NERO J
V ITE- [CELESTE ] * tGOSUB 3500
340 PR INI 1 ’ [3 DOUNITSPCOl >*[KERO)
PUNTI [CELESTE] *
350 V =53248 s POKE 8040, 198iPQKE V+3
3,0
360 POKE 8041 , 193! POKE V+40,3iPOKE
8042,194i POKE V+4 1,7
380 POKE 2043 ,135! POKE V+48,5:POKE
8044, 196i POKE V+43,B
400 X =238 ! Y=S 19 i X l =40 i Y 1 =58 : X£=£3£
! XY= I 33 1
410 Y8 =78 : X3 =838 : Y3 =58 : X4*40 1 Y4=8 1
3
480 IF QU= 1 THEN POKE V+21 ,31 GOTO
460
430 IF QU=£ THEN POKE V+Ei,7iG0T0
460
440 IF QU=3 THEN POKE V +8 1,15! GOTO
460
450 IF QU= >4 THEN POKE V+21, 31
460 POKE V , X ! POKE V + 1,Y:P0KE V+8,X
li POKE V+3,Y1
470 POKE V+4 ,X8 ! POKE V+5,Y2iP0KE V
+6,X3iP0KE V+7,Y3!P0KE V+8,X4!
POKE V +9 , Y4
480 P1=PEEK< 53878)
439 !
500 P=PEEK< 56320)
510 IF P=t£3 THEN X=X-8 !XY=XY- 1 !GO
TO 1000
580 IF P = 119 THEN X=X+8 : XY=XY+ 1 : GG
TO 1 100
530 IF P = 1 26 THEN Y*Y-8 i XY=XY-40 : G
OTO 1200
540 IF P=l£5 THEN Y=Y+8! XY=X Y+40 !G
OTO 1300
545 GOTO 560
550 POKE XY,8 1 ! POKE V,X:POKE V + 1,Y
560 Y1 =Yt +8 1 IF Yl >818 THEN Y1=58:X
1 =X 1 +48
570 IF XI >838 THEN Xl=40
580 POKE V+8 ,X I !POKE V+3,Y1:G0SUB
800
600 IF GU= 1 THEN 770
610 XE=X£-8tIF X2 <40 THEN X2=238iY
8*Y2+24
880 IF YE >2 18 THEN Y£=78
630 POKE V+4 ,X£i POKE V+5,Y8iG0SUB
800
650 IF QU*2 THEN 770
660 Y3=Y3+ 16 • IF Y3>£I8 THEN Y3=58:
X3=X3-48
670 IF X3<40 THEN X3=838
680 POKE V +6,X3 ! POKE V + 7,Y3:G0SUB
800
700 IF QU=3 THEN 770
780 X4*X4+l$:iF X4>838 THEN X4=40i
Y4=Y4_24
730 IF Y4<?£ THEN Y4=818
750 POKE V+8 ,X4 JPOKE V+9,Y4sG0SUB
800
770 IF PA=845 THEN 4000
780 GOTO 500
800 PJ=PEEK< 53878)
810 IF PI =3 THEN 0=0: GOTO 3000
880 IF PI =5 THEN 0=0! GOTO 3100
830 IF PI =9 OR PI =17 THEN 3£00
840 RETURN
398 !
999 :
1000 GOSUB 1500! IF KOI THEN 550
1010 K=0 : XY=XY + 1 : X=X+S : GOTO 550
1099 t
1100 GOSUB 1500: IF KOI THEN 550
1110 K=0:XY=Xr-l :X=X-8:G0T0 550
1133 !
1800 GOSUB 1500! IF KOI THEN 550
1810 K=G;XY=XY+40 ! Y-Y+8 5 GOTO 550
1839 i
1300 GOSUB 1500: IF KOI THEN 550
1310 K=0 :XY=XY-40 : Y=Y-8 ! GOTO 550
1499 : '
1500 PE=PEEK CXY ) : I F PE=38 THEN K= I !
RETURN
1510 IF PE03S AIO PE081 THEN PA=P
A+l :PU=PU+1
1530 GQSU8 3700! RETURN
1889 i
£000 POKE 53880, 0:POKE 53881,0
£050 PRINT* [HOME 115 DOWN] "SPC < 14 ) "M
A R 2 IO"
8060 PRINT" 13 DOWN] "SPC < 12)"J0ISTIC
K PORT 8"
£070 PRINT" 14 DOWN] "SPC< 15) "UN ATTI
MO"
8080 PRINT* £3 DOWN] "SPC < 14 > "e 1 985
CAST"
8090 RETURN
8997 REM ********************
8398 REM 5 COLLIS. SPRJTE 8 *
£999 REM ********************
3000 Y1=Y1 +8 tGOSUB 4600
3010 POKE V+3, XI tPOKE V+3,llfP0KE V
Commodore Computer Club - 53
GIOCHI
,x:poke V+l/Vl
3020 FOR 1=0 TD 100;FEXTiIF r i <250
THEN 3000
3030 FOKE 54276,0: VI =VI-1:GQSUB 350
0 ! GOTO 400
3037 REM ********************
3038 REM * COLLIS- SPRITE 3 *
3093 REM ********************
3100 X2 -KB "8 * GOSUB 4600
3110 POKE V+4 ,X£ *FQKE V+5,y£:POKE V
,X2 sPOKE V + I , Y
3120 FOR 1=0 TO 100:FEXTUF X2 >5 TH
EN 3100
3130 POKE 54278,0* V I -V I - 15 GOSUB 350
0 :GOTO 400
3197 REM **********************
3198 REM * COLLIS. SPRITE 4-5 *
3199 REM **********************
3200 GOSUB 4700: FOR 1=0 TO 64: POKE
53280, ! il^EXT: POKE 54278,0
3210 FOR 1=0 TO 1000!htXT
3220 V I =V I - 1 ! GOSUB 3500 S POKE 53280,
11
3230 L = 1 : GOTO 400
3497 REM ******************
3488 REM * CONTROLLA VITE *
3439 REM ******************
3500 PRINT 11 [HOfrEK 10 OOLt^l “SPC <33 > V
1
3510 IF VI-0 THEN 4500
3520 RETURN
3597 REM *******************
3538 REM * SEGNA N. QUADRO *
3593 REM *******************
3800 PRINT" [HOME] 14 DOWN 3 "SPC < 33 )QU
: RETURN
3637 REM ***************
3698 REM * SEGNA PUNTI *
3633 REM ***************
3700 PRINT* 1 [HOPEH 16 DOWN] "SPC < 32 )P
U : RETURN
3937 REM ***************
3398 REM * FINE QUADRO *
3893 REM ***************
4000 FOR 1=0 TO 36: POKE 53280, UNEX
Ts FOR 1=0 TO 1 000:NEXT
4010 PRINT" CCLEAR 3 C3 DOWN] m JpOKE 53
280 ,11: POKE 53281, Ili POKE V+21
,248
4020 PR INTSFC ( 10 > * [NERO ]QUADRO COMP
LETATO ! M [CELESTE 3 11
4030 FOR 1=0 TO 30003NEXT1QU=QU+1 :P
A=0: PRINT" [CLEAR ] IDOWNJ "
4040 GOTO 300
4497 REM **************
4493 REM * RICOMINCIA *
4439 REM **************
4560 POKE 53280,11
4510 PRINT" [HOME H20 DOLN] 11 SPC <30 > "
[NERO JGAME OVER [CELESTE ì "
4520 PRINT ]l CDOWN1 *SPC<33>* CNERQ 3Y/N
[CELESTE ] "
4530 GET R$:IF R$= TJ N JJ THEN END
4540 IF R*=*Y" THEN 4560
4550 GOTO 4530
4560
4570
4597
4588
4539
4600
4610
4820
4637
4698
4693
4700
4710
4997
4338
4398
5000
5010
5020
5030
5097
5088
5099
5100
5110
5120
5130
QU= 1 1 V I =3 * PA = 0s PU = 0
POKE V+21 ,240: PRINT 11 [CLEARJ [DO
UN 3" sGOTO 300
REM ************************
REM * SUONO COLL, SPR, 2-3 *
REM ************************
S =54272: POKE S+24,15:PGKE S+5,
64 JPOKE S+6 ,S4
POKE S ,49 : POKE S+ 1 ,28+0 S POKE S
+4 ,33
D=D+1 : RETURN
REM ************************
REM * SUONO COLL. SPR- 4-5 *
REM ************************
S=54272 : POKE 5+24,15!P0KE S+5,
64 » POKE S+6,64
POKE S , 1 2 : POKE S + 1,1: POKE S+4,
129: RETURN
REM *********************
REM * DATA SPRITE 1 2 3 *
REM *********************
DATA 0.255,0,0,213,0,0,213,0,
24 ,255,24 ,24 , 255 ,24 ,24 ,80,24
DATA 24,60,24,31,255,248,31,2
55. 248. 0. 255. 0,B,255 ,0,0, £55,0
DATA 0,855,0,8 ,255 ,0,0,255,0,
8.255.0. 0.195.0.0.195.0.0.195
DATA 0,0,195,0,0, 135,0
REM *******************
REM * DATA SPRITE 3 4 *
REM *******************
DATA 0,255,0,0,255,0,0,255,0,
8.255.0. 0 .255.0 .0 .60 .0.0.60 .0
DATA 255 ,255 ,255 ,255 ,255 ,£55 ,
0,255,0 ,0 ,255 ,0,0,255 ,0,0,255 ,
0
DATA 0,255,0,0,255,0, 1 ,£55,12
8.3.255.132.7.0. 224.14.0.112
DATA 83,0,56,56,0,26
54 Commodoro Computer Club
E UTILE
PERIFERICHE
Il Disk
E 1541
di Giovami! Verrelli
V iaggio nel dischetto
flessibile. Siete sicuri
di sapere tutto sul
vostro Drive 1541?
1 1 passaggio dal registratore a cassette
all'unità a dischi è un evento die, prima o
poi, si verifica per quasi tutti i possessori
dei C64 {ed anche per qualcuno del Vie
20 ),
Neì presente articolo, pertanto, si af-
fronterà l 'argomento disk drive cercando
di sopperire alle notevoli carenze del re-
lativo manuale d'uso.
Cominciamo subito con alcune notizie
hardware. Il 1541 (questo il numero che
contraddistingue ìn casa Commodore la
periferica in esame), come sicuramente
già saprete, dispone di un proprio micro-
processore 6502, di due processori 6522
che sovrintendono alll/O (Input - Out-
put: ingresso Uscita dei dati elaborati),
2K di memoria RAM (da usare per pic-
coli programmi personali o come buffer)
e ben 16K di ROM.
JI suo punto di forza è la presenza nella
ROM appena citata di un proprio siste-
ma operativo (chiamato DOS dalle pri-
me lettere di “Disk Operatine System ",
""sistema operativo per dischi") in grado
di controllare autonomamente e senza
alcun intervento da parte delfunità cen-
trale tutte le operazioni che esso compie
E + per questo motivo che viene chiamato
dispositivo intelligente,
I dischetti usati (chiamati anche floppy
disk perchè sono flessibili) per le memo-
rizzazioni corrispondono al formato, co-
mune alla maggior parte dei personal
computer, di 5.25" (5 pollici e un quarto,
corrispondenti a circa 13 centimetri).
Devono essere a singola faceta (cioè con
una sola facciata impiegabile per la regi-
strazione, anche se molti, con un pìccolo
taglio sul lato destro, ne utilizzano anche
l’altra) ed a singola densità, 5i presenta-
no racchiusi in una busta protettiva, dalla
quale non possono c non devono essere
estratti, con un largo foro centrale che ne
permette la rotazione e che in quelli di
buona qualità è rinforzato da un anello di
materiale plastico per evitarne la possibi-
le deformazione dovuta al continuo sfor-
zo di trazione.
Sotto è visibile un altro foro, di forma
allungata, che permette alla testina di
entrare in contatto con la superficie ma-
gnetica del disco. Questo è il punto piu
delicato e non deve essere in nessun caso
toccato con le dita o lasciato esposto al-
l’aria o al sole senza la busta di
protezione.
Commodore Computer Club - 55
L’ UTILE
Infine sul lato sinistro è presente un
incavo rettangolare che, opportunamen-
te coperto con un nastro adesivo, impe-
disce tutte le operazioni di scrittura, rive-
landosi perciò particolarmente utile per
evitare alterazioni o cancellazioni invo-
lontarie dei dati.
La formattazione
Per consentire l'immagazzinamento
dei dati, la prima operazione da compie-
re sul dischetto è la formattazione, me-
diante la quale si assegna al disco una
certa Sforma " che lo rende utilizzabile
#
per gli usi successivi.
Più precisamente, con questa prima
operazione si divide la superficie del di-
sco in una serie di aree circolari concen-
triche chiamate tracce c contraddistinte
da un numero che va da 1 a 35. Queste
tracce, a loro volta, sono suddivise in un
numero variabile di settori (o blocchi)
che vengono adoperati materialmente
per l’immagazzinamento dei dati
di dubbio la più importante. Per questo
motivo i settori liberi per l'utente sono
664: infatti 683-19=664. Grazie alle in-
formazioni contenute in essa è possibile
sapere in qualsiasi momento quanti e
quali programmi sono registrati sul di-
schetto, quanti blocchi sono ancora libe-
ri per la registrazione e così di seguito.
Vediamo, come sono conservate tutte
queste informazioni.
Il settore 0 di questa traccia («E 2)
contiene la BAM, o Block Àvailability
Map (mappa di occupazione dei blocchi,
in italiano), il cui scopo è dì registrare,
per ogni settore del disco» se esso è libero
per la memorizzazione o già occupato.
Consiste di 144 byte» corrispondenti ai
primi 143 byte del settore» ognuno dei
quali con uno specifico significato.
I primi due» numerati 0 e 1» sono usati
come concatenamento al settore seguen-
te (indicano qual è il prossimo settore da
leggere) e contengono 18 c 1 (traccia=t8
e settore— I).
Segue il byte 2, contenente il valore
I NUfERO TRACCIA T~3ETT0R I TOTALE
| 1
f
J
- 17
il 0
- 80
i
3!
1
18
- £4
1 0
- 18
i
13
1
85
- 30
l e
- 17
i
10
1
31
- 35
1 0
- 16
«
17
v J
1 TOTALE SETTORI 683
i
I
H
I
I
I
I
H
I
Figura ì . Distribuzione dei settori per traccia.
Come si può notare dalla tabella di fìg
1 » una traccia può avere da 17 a 21 settori
per un totale di 683 blocchi disponibili
per le memorizzazioni anche se, come
vedremo tra poco, solo 664 sono liberi
per Putente.
Ogni settore» oltre a poter conservare
256 byte» contiene in una zona non acces-
sibile al Tu tenie alcune informazioni usa-
te per controllare la bontà della registra-
zione (IQ del disco, numero della traccia
in cui esso si trova, eoe.).
Gestita in modo diverso rispetto a tut-
te le altre» la traccia 18» costituita da 19
settori numerati da 0 a 18» è riservata per
gli usi della "'directory 11 ed è senza ombra
65» codice ASCII della lettera A» che
comunica al drive in che formato è regi-
strato il disco e che viene controllato au-
tomaticamente ogni volta che vengono
effettuate operazioni di scrittura. Questo
byte è molto importante in quanto, se
per un motivo qualsiasi se ne cambia il
contenuto, non sarà più possibile scrive-
re su quel disco se non ri formattandolo,
11 byte successivo, numerato col 3, non
ha alcun significato e contiene il valore 0.
I byte dal 4 al 143 costituiscono la
BAM vera e propria e ( contengono la
mappa dei settori occupati. Questi 140
byte sono suddivisi in 35 gruppi di 4 byte
ciascuno, ad ognuno dei quali corrispon-
de il relativo numero di traccia (al primo
gruppo corrisponde la traccia n.I, al
gruppo 2 la traccia n,2 e cosi via fino al n,
36),
l quattro byte che formano ciascun
gruppo contengono le diverse informa-
zioni e sono gestiti in questo modo:
• il primo byte contiene il numero dei
settori ancora disponibili nella traccia;
• il secondo byte indica la condizione
dei primi 8 settori della traccia: a questo
scopo vengono usati i singoli bit (si co-
mincia a partire da quello situato più a
destra), con la convenzione che se esso è
uguale ad 1 il relativo settore è libero,
mentre se vale 0 il settore è occupato;
è il terzo byte indica la condizione degli
altri 8 settori della traccia a partire dal
settore 8 (bit più a destra) al 15 (bit più a
sinistra);
» il quarto byte contiene la mappa dei
rimanenti settori della traccia.
Giacché con tre byte è possibile regi-
strare 24 settori (U-23) mentre il numero
di settori per traccia è variabile tra 17 e
21, il DOS risolve questo problema po-
nendo a 0. durante la formattazione, i bit
corrispondenti ai settori inesistenti, fa-
cendoli così risultare occupali e perciò
non liberi per la memorizzazione.
Per esempio» se il secondo byte del
primo gruppo contiene il valore 253
(11111101 in binario), allora solo il setto-
re numero 1 della traccia 1 è già stato
usato per memorizzare dei dati (e perciò
non libero per successive memorizzazio-
ni); se il terzo byte del ventesimo gruppo
contiene il valore 124 (01111100 in bina-
rio), allora nella traccia n. 20 i settori 10,
11, 12, 13 e 14 sono liberi per ricevere dei
dati, mentre quelli con numero 8, 9 e 15
già occupati.
Proseguendo nell'esame delia traccia
18 settore 0, i byte dal 144 al 166 sono
usati per l'identificazione del dischetto;
quelli rimanenti, dal 167 al 255» non ven-
gono utilizzati. Perciò i 16 caratteri del
nome del disco ed i 2 dell'ID sono conte-
nuti in questa seconda parte de! settore
0. Più precisamente, essi sono memoriz-
zati, carattere per carattere in codice
ASCII, nei byte 144-159 e 162-163.
Nel caso in cui il nome del disco avesse
56 - Commodore Computer Club
L’ UTILE
I BYTE
Y
I 0-1
E
! 3
I 4-143
1144-143
1160-161
! 162-163
i 164
1165-166
1167-255
L
ICONTENUTO 1 DESCR 12 IONE
4
x
I
I 18
I
01
65
) 00
[VARIABILE
I VARI AB ILE
I 160-160
I VAR IAB ILE
I 160
( 50 - 65
VARI
(TRACCI A -SETTORE 1 BLOCCO DIR. |
I* A ‘ FORMATO DI REGISTRAZIONE I
(BYTE NON USATO |
|B AM- MAPPA OCCUPAZIONE SETTORI]
|NO»>t DEL DISCO |
(BYTE NON USATO ]
tlD. DEL DISCO |
iBYTE NON USATO |
1 1 2A 1 VERSI OFE DEL DOS I
jBYTE NON UTILIZZATI i
Figura 2. Descrizione detta traccia 18 settore 0.
un numero di caratteri inferiore a 16,
allora il DOS aggiunge automaticamen-
te, durame la formattazione, degli spazi
shiftati (valore ASCII 160) : mentre, se
supera il limite accennato viene opportu-
namente troncato.
Il nome del disco è inserito per como-
dità deliziente e non viene usato dal
DOS. al contrario dell’ID (abbreviazio-
ne di “Identification Disk ’, “Identifica-
zione del Disco"), che riveste un'estre-
ma importanza per esso e che si consiglia
far variare da disco a disco pena la possi-
bile perdita dei dati
Come usare il programma
“DISPLAY & TS”
Prima di proseguire nell'esame della
traccia 18. esaminiamo un programma
che ci permette di vedere tutte queste
cose.
Ci riferiamo al “DISPLAY T&S",
contenuto net disco (il Test/demo) forni-
to insieme al drive al momento dell T ac-
quisto, che ci permette di esaminare il
contenuto di qualsiasi byte di qualsiasi
traccia e settore (ricordiamo che per il
Vie 20 questo programma necessita di
un’espansione di memoria di almeno
8K).
Dopo averlo caricato in memoria, e
dato il RUN, la prima domanda a cui
bisogna rispondere è se vogliamo che i
risultati vadano su video (screen) o su
stampante (printer) premendo ìa lettera
corrispondente all' iniziale del nome (in-
glese) della nostra scelta.
Fatto questo, i! programma chiederà il
numero di traccia e settore che vogliamo
esaminare, dopodiché il contenuto di
questo sarà visualizzato sulla periferica
prescelta (nel caso si fosse scelto il video,
la pressione del tasto CTRL rallenterà la
visualizzazione; premendo il RUN/
STOP la si fermerà del tutto con la possi-
bilità, scrivendo CONT e battendo RE-
i URN, di riprenderla in qualsiasi
momento).
11 contenuto di ogni settore è visualiz-
zato in notazione csadecimale, un meto-
do molto comune per la rappresentazio-
ne dei numeri binari. Per ìa conversione
nel formato più familiare di numeri deci-
mali, basterà moltiplicare la prima cifra
del valore per il numero 16 ed aggiunger-
ne la seconda, ricordando che ai caratteri
A. ET C, D, E ed F corrispondono, ri-
spettivamente, i valori IO. li, 12. 13, 14 e
15, Perciò, al valore esadecimale A6 cor-
risponde il numero decimale 166
(10*16+6), mentre al valore 12 corri-
sponde il numero 18(1* 16+2).
Alla destra di ogni linea, inoltre, à vi-
sualizzato il carattere ASCII corrispon-
dente ai diversi valori presenti.
Infine, per uscire dal programma è suf-
ficiente rispondere alla richiesta del nu-
mero di traccia con un valore esterno
a IL intervallo 1-35.
Riprendendo il discorso iniziale, i ri-
manenti settori della traccia 18 sono uti-
lizzati per la directory (contengono i no-
mi dei file registrati e indicano dove que-
sti sono allocati).
Poiché in ogni settore è possibile regi-
strare Tindice di 8 file (fig 3), un disco
può contenere solo (!) 144 file diversi.
Infatti 8 file * 18 settori rimanenti nella
traccia IR “ 144.
Come per il settore 0, i primi due byte
del settore ‘T T puntano (=indicano) al
prossimo blocco da leggere: questa prati-
ca del puntatore è usat3 per tutti i settori
in quanto le varie registrazioni non av-
vengono sequenzialmente, perciò si ha
bisogno di sapere ogni volta in quale
blocco la registrazione continua. L'ulti-
mo settore utilizzato per la memorizza-
zione è indicato dal fatto che i primi due
byte puntano alla traccia 0. settore 255 (o
altro valore), che in realtà non esiste.
Dopo questi primi due byte abbiamo ì
30 byte che contengono tutte le informa-
zioni sul primo file registrato (fig 3,1),
Di questi:
Il byte 0 indica il tipo di file:
129 ($81) per sequenziale (SEG)
130 ($82) per programma (PRO)
131 ($83) per user (USR)
132 (S84) per relativo (REL)
0 ($00) per file cancellato (DEL)
valori intermedi tra 128 e 1 per file chiusi
non correttamente che il DOS ignorerà;
• i byte 1 e 2 puntano alla traccia e setto-
re dove è stato memorizzato il primo
blocco del file;
• i byte dal 3 al IR contengono il codice
ASCII dei caratteri del nome de! file (an-
che in questo caso se il nome è più corto
di 16 caratteri il DOS aggiungerà auto-
maticamente degli spazi shiftati, codice
ASCII 160);
• i byte dal 19 al 21 sono usati solo per i
file relativi e contengono l'indirizzo di
traccia e settore del primo SIDE SEC-
TOR (un indice interno usato dal file,
byte 19 e 20) e la lunghezza di ogni record
( 21 );
• i byte dal 22 al 25 noli sono utilizzati;
• i byte 26 e 27 contengono il numero di
traccia e settore del file che è staio me-
morizzato dopo il comando OPEN
con un nome già presente in directory
(questo è quanto dice il manuale d'uso,
mentre personalmente ho visto che con-
tengono sempre 0)
• i byte 28 e 29 indicano il numero di
blocchi occupati dal file nel formato byte
basso-bvte alto.
Comma doro Computer Club - 57
L’UTILE
Al termine di questi primi 30 byte ci
sono 2 byte contenenti il valore 0 ed usati
come caratteri separatori; quindi si han-
no altri 30 byte usati per le informazioni
deila seconda registrazione seguiti da
due byte a zero, e così via fino all'Indice
dell’ottavo file che concluderà il settore
1, Sì ricordi che ogni settore può conte-
nere al massimo l’indice di 8 file.
Per gli eventuali altri settori usati per
la directory, presentì se i file memorizza-
ti sono più di 8, valgono le stesse spiega-
zioni viste per il settore 1.
L'ultima informazione (non riportata
nemmeno sul manuale d’uso) è che, solo
per i file programmi, i byte 2 e 3 del
primo settore dove comincia la loro me-
morizzazione contengono la locazione
iniziale, espressa come ai solito nel for-
mato byte basso-byte alto, dove risiede-
va il programma al momento del
salvataggio.
Vediamo ora in pratica come tutte le
informazioni appena viste sono realmen-
te utilizzate,
impariamo a leggere
il contenuto di un disco
Dato che in questa fase sarà largamen-
te impiegato il DISPLAY T&S, cerchia-
mo dì renderlo ancor più efficiente ag-
giungendo la riga:
453 WATT 198,1,1
per mezzo della quale ogni volta che si
desidera fermare la visualizzazione del
contenuto di un settore basterà premere
un tasto (diverso dallo SHIFT o dallo
STOP), con la possibilità, riprcmendolo
un'altra volta, di continuare il lavoro
iniziale,
Per prima cosa, formattiamo un disco
nuovo eseguendo il comando:
OPENl5,8, 15,“N0:PIPPO,00"
:CLOSE15
per fare in modo che tutto ciò che sarà
detto tra breve sia identico, per le prove
che farete a casa vostra, per qualsiasi
disco.
Fatto questo, caricate il DISPLAY
T &S e andate a leggere il contenuto della
traccia 18 settore t) che, come detto pre-
cedentemente, contiene la BAM, la
mappa di occupazione dei settori.
I primi due byte, come facilmente ri-
scontrabile anche dalia figura 4, conten-
gono i valori S12 (18 in decimale) e $01 (1
in decimale), indicanti al DOS che il
prossimo settore da leggere è il n, l della
traccia 18, Seguono il byte indicante il
formato dell'umtà ($41, 65 in decimale,
codice ASCII della lettera A) ed il byte
non usato che contiene il valore 0,
Nella BAM vera e propria {byte dal 4
al 143) possiamo vedere che effettiva-
mente tutti i settori del disco, tranne t
numeri U e 1 della traccia 18, sono liberi
per le registrazioni (infatti il disco è stato
appena formattato) e che i settori non
esistenti sono codificati come già occu-
pati (vedasi a tal proposito il byte n. 7,
contenente il valore £ 1F, “3 T’ in decima-
le e 0001 1U1 in binario, indicante che i
settori n. 16, 17, 18, 19 e 20 della traccia 1
sono liberi per le memorizzazioni, men-
tre quelli ii. 21, 22 e 23, che in realtà non
esistono, già “occupati").
Sempre tn questo settore possiamo ve-
dere che effettivamente il nome del disco
(PIPPO) è memorizzato con raggiunta
di spazi shi flati ($AQ, 160 in decimale)
nei byte dal 144 al 159 ($90 - $9F), che i
due caratteri della ID sono presenti nei
byte 162 e 163 ($A2e$a3)eche i byte dal
167 al 255 ($A7 - $ff) non sono utilizzati
(infatti quasi tutti contengono il valore
0 ).
Questa è la situazione presente quan-
do il disco è “vuoto", cioè appena
formattato.
Vediamo ora cosa succede nel mo-
mento in cui si registra il primo program-
ma. A tal proposito, dopo aver effettua-
to il NEW per cancellare gli eventuali
programmi presenti in memoria, digitia-
mo la linea:
10 REM PROGRAMMA DI PROVA
e la salviamo su disco col comando:
SA VE “PROVA", 8
Fatto questo, andiamo a leggere, dopo
aver ricaricato DISPLAY T&S, il conte-
nuto della traccia 18 settore 1 che, ricor-
do, contiene tutte le informazioni dei
primi 8 file registrati, tra cui ora figura
“PROVA”,
Come si può constatare anche dalla
Fig 5, i primi due byte del settore conten-
gono i va lori De 255 (SOOeSFF) indicanti
che questo è Tultimo settore (e perciò
anche l’unico) utilizzato per la definizio-
ne dei file registrati.
Subito dopo abbiamo il valore 130
($82) indicarne che siamo in presenza di
un file programma, seguito dai valori 17
($11) e 0 ($00) che ci informano che il
primo settore utilizzato per la registra-
zione del programma è il n, 0 della trac-
cia 17.
A seguire troviamo il nome del pro-
gramma (PROVA nel nostro caso) com-
pletato da tanti spazi stilila ti quanti ne
occorrono per raggiungere i 16 caratteri
(11, dato che il nome PROVA è di 5
caratteri) unitamente ad altri byte, dal 21
($15) ai 29 ($1D), contenenti il valore 0,
in quanto non utilizzati in questo caso.
Gli ultimi due byte (30e 31, $1E e $1F)
informano che il programma occupa in
tutto 1 blocco (1+0*256),
Ritornando alla traccia 18 settore 0
dopo la registrazione del programma,
vedremo che nella BAM gli unici valori
variati sono quelli contenuti nei byte 68
I BYTE I DE3CR 12 IDfC |
h 4 ■ 4
I 0 - 1 (PROSSIMO BLOCCO DA LEGGERE 1
! £ * 31 [ENTRATA 1' FILE DIRECTORY
134 - 63 [ENTRATA 2' FILE DIRECTORY |
166 - 35 (ENTRATA 3 1 FILE DIRECTORY
198 ^127 [ENTRATA 4' FILE DIRECTORY (
I 130-159 [ENTRATA 5' FILE DIRECTORY
1162-191 | ENTRATA 8' FILE DIRECTORY |
|iS4~£23 [ENTRATA 7 1 FILE DIRECTORY
1226-855 [ENTRATA 8* FILE DIRECTORY |
l l
Figura J. Descrizione della traccia IH settore I.
58 - Commodore Computer Club
L’ UTILE
[ BYTE T DESCRIZ IONE 1
h
+
“M
i 0
1 TIPO DI FILE
]
l 0 -FILE CANCELLATO (DEL)
i
[ 129=F ILE SEQUENZIALE (SEQ)
i
t 130=F ILE PROGRAMMA (PRG )
1
I 13 1 -F ILE USER <USR>
I
I 132 -F ILE RELATIVO (RED
i
) 1-2
ITRACCIA-SET. 1’ BLOCCO PATI
i
f 3-18
(NOME DEL FILE
I
1 19-20
}PER I FILE RELATIVI TRACCIA
I
1E SET. DEL PRIMO SIDE SECTOR 1
1 £1
ÌPER I FILE RELATIVI LUNGHEZ
- 1
f
|ZA DEI RECORD
i
| £2-25
jBYTES NON UTILIZZATI
i
| 26-26
1 TRACCI A E SETTORE DEL FILE
i
|RIM=IAZZATQ (60 5 FILE )
i
I 28-29
I BLOCCA I DEL FILE BYTE BASSO
- 1
L
ÌBYTE ALTO
_L
1
i
Figura 4. Contenuto della Traccia 18 seno re 0 dopo la formattazione.
(144) e 69 ($45), relativi alla mappa di
occupazione dei settori della traccia 17.
Infatti i valori ora presenti sono $14 (20
in decimale), indicanti che nella traccia
17 sono liberi solamente 20 settori e $fe,
254 in decimale e 11111110 in binario,
indicante che il settore 0 di questa traccia
è già occupato,
Volendo ora esaminare come real-
mente è stato registrato il programma
PROVA, dobbiamo semplicemente vi-
sualizzare il contenuto della traccia 17
settore 0 che, come visto prima, è il pri-
mo settore utilizzato per la memorizza-
zione del file in oggetto.
1 primi due byte di questo blocco pun-
tano al settore 30 (S1E) della traccia 0
($00) e, dato che non esiste alcuna trac-
cia 11, comprendiamo subito che solo in
questo settore è stato memorizzato il no-
stro mini programma.
Subito dopo abbiamo i valori 1 e 8 (SOI
e $08) costituenti il byte basso ed il byte
alto della locazione iniziale dove risiede-
va il programma al momento del salva-
taggio (1 +8*256= 2049, il normale inizio
del programma Basic, nel Commodore
64).
Dal byte n, 4 in poi troviamo esatta-
mente il programma cosi come codificato
in memoria centrale (byte di link, to-
kens, ece.), concluso della presenza di
tre byte contenenti il valore 0 posti uno di
seguito all’altro.
Dopo l'esame dì ciò che accade con la
registrazione dei programmi, vediamo
ora cosa succede quando impartiamo il
comando:
OPEN 15,8, 15, "SO: PROVA*"
:CLQSE 15
mediante il quale si ottiene la cancella-
zione del programma PROVA prece-
dentemente registrato.
Visualizzando il contenuto della trac-
cia 18 settore 1 possiamo notare che l'u-
nica differenza intervenuta dopo Tesecu-
zione dello SCRATCH è la comparsa de!
valore 0 nel byte $04 (4 in decimale) in
luogo del valore 130 ($82) originario. In
questo modo il DOS comprende di esse-
re in presenza di un programma cancella-
to (al codice 0, infatti, corrisponde il si-
gnificato di file cancellato) e di ignorare
tutte le altre informazioni relative a quel
determinato file.
Inoltre, nella BAM possiamo vedere
che i valori ora presentì indicano che an-
che il blocco usato precedentemente per
memorizzare il nostro mini programma
(traccia 17 settore 0) è ora libero per la
sovrascrittura,
Impiegando la stessa tecnica usata in
questi esempi è possibile estendere lo
studio appena fatto a tutte le possibili
situazioni che possono venire a crearsi
(programmi occupanti più di 1 blocco.
che per farlo in questa sede sarebbero
necessarie molte più pagine di quelle
possibili con il pericolo di rendere il tutto
molto noioso, consiglio gli interessati di
effettuare personalmente questo "studio
supplementare", utilizzando magari i
momenti vuoti (!) della propria giornata.
Prima di concludere vi anticipo che pros-
simamente esamineremo alcuni comandi
che permettono di colloquiare diretta-
mente con i singoli byte di qualsiasi bloc-
co unitamente ad alcuni programmi di
utilità coi quali vedremo come poter usa-
re in pratica tutte le nozioni finora
file sequenziali e relativi, &x.) e, dato apprese.
Vinóne frontale di quello che appare m protagonisti del
viaggia nel computer nel film Tran Ogni inquadratura
richièdeva da 5 a 7J milioni di calcoli Ogni minuto del
film , diretto da Jifirit Lif terger, è composto da 1Ì4Ò
Copyright F W81 Wal! Disney Produci ioni
Commodore Computer Club - 59
GIOCHI
uesto simpatico gioco metterà affa
prova le vostre capacità di intuizione e di
ragionamento.
Possono usufruirne lutti coloro che
possiedono un computer Vie 2(J, anche
se privo di espansioni di memoria.
[| calcolatore vi chiederà, inizialmen-
te. quanti errori può tollerare prima di
porre termine alla prosecuzione del
gioco.
Il vostro obiettivo è riuscire ad indivi-
duare una parola scelta dal computer Ira
quelle che ha a disposizione
inizialmente.
Le regole vi pongono un’unica limita*
zinne, non potete fornire, in fase di IN*
PUT* piu di una lettera alla volta
Le lettere già prescelte compariranno
nella zona inferiore del vostro video.
Buon gioco e aguzzate il vostro
inee gxio!
60 - Commodore Computer Club
GIOCHI
3130 PR I NT " [ HOME ] SEI IMBRANATO !
“SPRINT"
3140 GOTO 4010
4000 IF WtOLÌ THEN 3000
4010 PRI NT "[HOME] [DOWN]"; TAB < IND ) ;
4020 FOR 1=1 TD LN
4030 SPRINT " M C3 LEFT] [ DONNI [RV3 ]
| ">MID*<WS,I , 1 X " tRVOFFJI 13 LE
FTHDOLIN] ■[RVS J.tRVQFF ]* C2 UF']
Il •
f
4040 NEXTI
5000 PR INT" [HOf'E ] 1 14 OOUNIANCORA? "
m
r
5010 GOSUB 60000: IN*=LEFT*CIN* , 1 )
5020 IF IN*="S" OR IN*="" THEN 1500
5030 END
9337 GOTO 1500
3333 PRI NTs FRI NT
3333 END
30000 REM -«-TABELLINA DELLE PAROLE
30010 DATA VECCHIO , OGGETTO , LAVORO ,A>
TISI ANO, GRAZ I OSO , NATALE ,ORGAN
ZZAZAZ IONE, TRE
30020 DATA TELEFONO ,MODICO,M IN IATURE
, PENS I ERO , CER AM I C A , BAMBOLE , MAT
R I MQN IO, VASO
30030 DATA PIATTO, ANFORA, GRAF ICO ,ACQ
UAR IO, ALBUM, UNO, DUE, TREDICI ,RE
PUBBLICA, VISO
30040 DATA COLLEZ IONE , FRANCOBOLLO ,F I
LATEL I A , MONETA , CAMPAGNA ,CUCC IO
LATA , GATTO
30050 DATA G ABBI A, G I OCH I , AUTOMODELLO
, ALIANTE, PLASTICA, TECNIGRAFO, A
RTE, BELLO, ELMO
30060 DATA PERGAMENA, FIORI FIORISTA,
ELETTRONICA, PROFESS IONALE ,COMP
UTER, OTTIMO
30070 DATA CRI STALLO, CALORI FERO, GHIS
A ,STAB ILE ,PREZ IOSI DIAMANTE, OR
0 , VALORE ,B IRÒ
30080 DATA PIZZA, PIZZERIA, RISTORANTE
,TRANS IS TORE , ANTE W4A, RAD IO AMAT
ORE, VI STA
30090 DATA V ITTORI A, NATALE, FESTA, DOC
CI A, PORCELLANA, IDRAULICO, PORTA
,VERNICI ATURA
30100 DATA FLUORESCENTE PIASTRELLA ,P
ATENTE ,STENOGRAF I A, SPORT, SPORT
IVO, CORSA
30110 DATA TESTO , COLORE , TELEV IS IONE ,
FINANZ I AMENTO, AUTOMA2 IONE, UN IV
ERSITA,AI<NO
30120 DATA PAG INA, TERMINALE, RI CERCA,
DISTRIBUZ IONE, CLIENTE , SYSTEM, C
ONSIGLIO
30130 DATA VIS ITA, VOLUME ,L IBRO , TESTO
,RIVISTA, GLORIANO, DATI , ELABORA
TORE, RUM, GIN
30140 DATA GRAPPA, PREZZO, APERTO, APER
TURA, PORTO, TRASMISSIONE ,V INO ,B
OTTI GLI A, TAPPO
30150 DATA FINE, FINALE, TERMI NE .USC IT
A, CHISO, CHIUSURA, STOP , ARR IVO .0
CCHIO, GIORNO
33000 DATA H ”
S0000 IN*=“ “ iZT=TI:ZC=2:ZO*=CHR*<20
)
60010 GET Z*:IF Z*<>" 0 THEN 60070
S0020 IF ZT< =T I THEN RRINTMID*<" ,
ZC, 1 >; " ILEFT1 •; :ZC=3-2C:ZT=TI+
15
60030 GOTO 60010
60370 Z=ASCCZ*> :ZL=L£N< IN*) : IF <Z AN
D 127X32 THEN PRINT" ILEFT I " t
S GOTO 60110
60033 IF FL AND <Z AND 127) >64 AND <
Z AND 127X91 THEN Z*=CHR*<(Z+
128) AND 255 >
60030 IF 2L >254 THEN 60010
60100 1N*=IN*+2*:PRINTZ*;ZD*;Z*;
60110 IF 2=13 THEN IN*=MIO*< IN*, 2 > : P
R1NTCR*; ! RETURN
60 120 IF Z=20 AND ZL>1 THEN IN*=LEFT
*< IN*,ZL-1 ) SPRINT" ELEFT] :GOT
0 60010
60130 IF Z = 14 l THEN Z*=CHR*( -20* r ?l >
1 ) > s FOR Z =2 TO ZI, SPRINT?*» !NF W
TZ S GOTO 60000
60140 GOTO 60010
60200 IF PN=0 THEN GOTO 60250
60210 PRINT" IDONNJPREMI IRVEIRETURNI
RVOPFJ PER "?
60220 IF PN«LP THEN PR INT" INI Z I ARE "
* s GOTO 60240
60230 PR TNT*CONTINUE : "s
60 243 GET T*:IF T*= " " THEN 60248
50250 IF PN*LP THEN POKE 53468, FK:CL
R SPRINT" ICLEAR 1"; SGOTO 100
60260 PN-PN+1 SPRINT" ICLEAR ] "JPG3U * -
*H*- ^2-' I -*H*~ t#-»-) 197
3ID0LM]"
60270 RETURN
Commodore Computer Club -61
GIOCHI
10 CLR SPORE 36873, 1£
£0 PR INI" tCLEAR J LHOME 1 " 1030
90 FG$= "PAROLE "
4 03 CR$-CHR$< 13 > 1040
900 PRIMI
1000 UJC = 0
1010 READ T$:IF T$O w " THEN WC-WC + 1 1050
t GOTO 1010
1015 PRIMI" 13 UP J MI NI SYSTEMS 1060
EDITORIALE 1070
1016 FRINÌ" [£ DOUT4J **i **t **** 1080
1017 FRINÌ" * PAROLA * 11
1018 FR I NT" ********** *
} 020 FRINÌ" COOUN 3 l BIANCO! QUANTI ER 1500
PORI DEVO AMMETTERE AL MAH
> 1510
Ì5£0
1535
E 000
£0£0
£030
£040
£080
3000
3005
3006
3010
30 12
3015
3080
3030
3040
,3050
3080
3080
3090
31O0
3110
3 1 £0
?“ SPRINT “12 DOWN3A TE ? " ;
GOSUB S0000 : IF JN*="" THEN LIM
= 1 E2 : GOTO 1500
FOR 1=1 TO LENUN*) sT*=MID*<IN
*, 1 , 1 > : IF T*>= "0 " AND T*< = "9 ’
THEN 1060
PR I NT “ NON LETTERE PREGO” SGOTO
1020 :
NEXT1
LIM=VAL< IN*)
IF L I M< 1 THEN PR I NT "NESSUNO PO
TREBBE FARE DI MEGLIO !":GO
TO 1020
T= I NT < RND C 1 )*UJC> + 1 sRESTORE sFO
R 1=1 TO T: READ U*:N£XTI
LN=LEN<Wt) :LC=LNs BL*=MID*C " " ,
2-CLN AND i))
LIR=0!PRINT
IF LN>7 THEN 1500
FRI NT” [OLEARI LA " *BL*J "PAROLA
Il »
*
FOR 1=1 IO LN
PR INI" j — ,[3 LEFTHDGhlH] |? [C3 L
EFT 1 1 D014NJ i—J C2 UPJ";
MEXTI SPRINT
FRI NT " [ 7 DOmì ** Gl A' SCELTE
**"
PR I NT M [HOPEH5 OOWJirCOV INA:
U m
r
PRINTLEFTSC "
" ,LEN(L$
) + 1 >
PRÌNT W CUPI IMBOVINA: ** ; ; GOSUB 6
0000 : L$= IN$
IF LEN<L$)>1 THEN 4000
IF im= u * THEN 4010
IF L$<"A" OR L$ > "Z " THEN 3000
M=0 SPRINT" [HOMEHDGUNJ "f
FOR 1=1 TO LN
IF MID£<UJ$, I , 1 >OL$ THEN PRINT
,r 1 3 R IGHT ] " ; : GOTO 3060
PRINT" w t3 LEFTnOQWNJ [RVSJI "
;L$; "IRVOFF ]| [3 LEFTirDOWN] P [R
VSWRVOFF J» [£ UP J n ; :M^M+ULC =
LC-1
NEXTJ SPRINT
IF M>0 THEN 3100
WR=WR+i
PR I NT " C HOhC J I S DOLNHRVSJ TA
B < ASC <L$) + 1 ); Lì; " IRVOFF J "
IF LC~0 THEN 5000
IF 14R<LIM THEN 3000
62 - Commodore Computer Club
GIOCHI
QUALSIASI COMPUTER
di Diego e Federico C arietta
1 1 gioco che presentiamo è molto sem-
plice dal punto di vista della programma-
tone, per cui anche i lettori meno esperti
potranno facilmente capirne la struttura.
Sono presentati tre listati separati,
adatti per il C64. il C16 e il V1C 20
inespanso.
Spieghiamo innanzitutto come si svol-
ge il gioco. Dopo aver dato il RUN, ap-
parirà una domanda relativa alla velocità
del gioco: se viene battuto direttamente
il tasto RETURN, viene automatica-
mente scelta una velocità media. À que-
sto punto apparirà sullo schermo una gri-
glia con tutte le lettere dell'alfabeto. Al-
cune lettere verranno successivamente
illuminate e voi dovrete scrivere la parola
che avrete individuato. Se la parola è
giusta, si illumineranno le lettere per una
successiva parola, altrimenti verrà segna-
lato Terrore insieme alla parola giusta.
Passiamo ora alla descrizione dei
listati.
La riga 100 definisce i colori di bordo e
schermo.
Le righe 110 e 120 servono per ca ricare
nelle variabili À$ le parole contenute
nelle righe DATA da 470 a 510.
Se volete cambiare le parole, potete
farlo, ma mantenendo sempre lo stesso
numero di lettere delle parole sostituite.
Potete anche aggiungere nuove linee
DATA con altre parole, ricordando di
mettere uno 0 nell'ultima riga (vedere la
riga 510) e cambiando il ciclo FOR pre-
sente nella riga 120; inoltre occorre cam-
biare il dimensionamento della variabile
A$ nella riga 110. Ad esempio, se vengo-
no aggiunte 2 righe, occorrerà scrivere
FO RT=ITQ7 e DIMAS (7,10),
La riga 130 legge la velocità voluta,
mentre dalla riga 140 viene scelta (ca-
sualmente) la parola da scrivere.
A questo punto il controllo del pro-
gramma passa alla riga 270 ed alle se-
guenti, che provvedono a stampare la
griglia con le lettere sullo schermo.
La riga 370 restituisce il controllo del
programma alla riga 150, che provvede,
insieme a quelle che seguono, ad illumi-
nare in sequenza le lettere.
Il resto del programma è facilmente
comprensibile.
Commodore Computer Club - 63
GIOCHI
50 REM ALFABETO PAZZO
60 REM SOFTWARE DI
70 REM FEDERICO CANETTA
30 REM PER COMMODORE 64
30 :
100 PR INT" CCLEAR 3 IBLEO 3 " i POKE 5328
0,0! POKE 53281,0
110 DIM A4<5 , 10 >
120 FOR T= 1 TO 5 s FOR T 1 = 1 TO 3! REA
D A$:A4<T,T1 )=A*: NEXT: NEXT
130 PRINT" [OLEARI t 17 R IGHT 130 " : INP
UT " [HOME! VELOCITA ' U-60) *;VE:
IF VE < 1 OR VE >60 THEN 130
140 VE = 100 -VE ! FOR L I =0 TO 9:F0R TI
= 1 TO 9 : T= I NT < RND ( 0 > *4 > + I s A =L£
M(A*CT,T1> ) :GOSUB 270
150 PR INT" [HOME 1 1 A2ZUR 1 C7 RIGHT1AD
ESSO SCRIVO LA FAROLA " i FOR F=0
TO 1000: NEXT
160 FOR P=1 TO A!B=A3C<MI04CA4<T,T
l > ,P , 1 ) > : IF 8 <73 THEN 0=55467 +
(B -65 > *£
170 IF B >72 AMD BOI THEN 0=55547 +
<B-73>*2
130 IF B >80 ArC B<33 THEN 0=55627 +
<B-81 > *2
130 IF B >33 THEN D=55707+ <B-89 ) *2
200 POKE 0,1! GOSUB 460: FOR F =0 TO
VE ! LEXT : POKE D ,6 : FOR F=0 TO VE
s NEXT ! NEXT
210 PRINT” tHOhCl
" : PR I NT * 1 1 7 DONNI
il
220 II4PUT "CHE PAROLA ERA"JB*
£30 IF B4<>A*CT,T1) THEN 330
240 PR INT" [ROSSO IOK IAZZURI FOR F=
0 TO 300i NEXT
250 NEXT ! FOR F=0 TO 1000 : NEXT: 1CXT
260 EM3
270 PR I NT " ECLEAR1 [ BLEU I [ 3 OOUM3I10
RI6HTI . . "
£30 PR INT " [ 10 RIGHT] |A |B IC IO IE (F |G
IH I "
230 PR INT" 1 10 R IGHT1 I — | — I — I- < — | — | —
4 — 1 "
300 PR INT" I 10 R1GHTI 1 1 | J |K IL |M|N|0
IP I*
310 PRINT" t 10 RIGHT1 I I I I I I f-
4—1”
320 PRINT" 110 RIGHT3 |G IR IS IT |U |V |W
IX |"
330 PRINT" [16 R 1 GHT3 I I I 1 1 1 1
340 PRINT" [3 RIGHT3 [Y |2 IN •
LET, =* A: PRINT" CUP 3 [26 RIGHT] 1"
350 PRINT" t3 RIGHT!' — ' — '
i »
360 PRINT" [ 1 1 DOWN] [Gl ALLO 3ERR0RI
= "ER
370 RETURN
380 PRINT" IUP IMI DISPIACE LA PAROL
A ERA ";A*<T,T1 >!ER=ER+1 ! IF ER
=3 THEN ER=0 : GOTO 400
390 FOR F =0 TO 1000! NEXT: GOTO 250
400 1=1+1 :IF 1=6 THEN 1=1
410 FOR F=0 TO 1000 :NEXT!PRINT* [CL
EARH11 OOWNltG R IGHT3F INE DEL
GIOCO"
420 FOR F =0 TO 1 000: NEXT: FRI NT " [CL
EARH3 DONNI £5 RIGHTIVUOI GIOC
ARE ANCORA ?"
430 GET A4: IF A4<>"3" AMI A4<>"N"
THEN 430
440 IF A4="N" THEN PRINT" [3 DOWN 3 [
3 RIGHT3 ICLEAR JC1A0":EIM3
450 GOTO 130
460 5=54272: POKE S+24,I5:F0KE S+I,
1 10: POKE 5+5,3
470 POKE S +6 ,3 : POKE 3+4,l?:ROKE S +
4,16: RETURN
480 DATA APE, CLUB, EDERA, ATTI CO, BAN
DITO, GIACINTI , BATUFFOLO ,CASSAP
ANCA
490 DATA AGO, MODA, FIBRE .CHI AVE, CHI
. AZZE , SPREMUTA -CAPPUCC 1 0 ,SOPRAN
NOME
500 DATA SUD, NOTA, GATTI , GABBIA .RAF
FICA, BRICCOLE, INOUSTR IA,M1CR0S
COPI
510 DATA TRE, SETE, IGLOO, SLALOM, PRI
MA TO , DE C ADU TO , SPERO I URO
520 DATA NOI CIAO , TACCO , GELARE ,GAT
T 1140 f GRAZ 1 OSO, ERMETISMO, IMPORT
ANTE , 0
64 - Commodore Computer Club
GIOCHI
30 REM ALFABETO PAZZO
95 REM VERSIONE C-iS
37 REM ì PLUS -4
100 PR INT’jJS' 1 : COLORO , 1 ! COLGR4 , 1
110 D1MASC5, 10)
120 FORT= I T05 i FORT 1 = 1 T08 ! REAOASt A$<T, TI ) =A$: NEXT:NEXT
130 PR 1 NT ■ ; M MII 1 ——WB B * ; I NPUT “ìft'ELOC 1 TA ' ( 1-60) ”;VEs IFVE< 10RVE >60THEN130
140 VE = 100 -VE :F0RT2 =0105: FORTI = 1T08: T= 1NT<RND <0> *4 ) + 1 : A=LENCA$<T,T1 ) ) 1GOSUB270
158 PR1MT“ 1MW— W1 AOESSO SCRIVO LA PAROLA " 1 FORF =0TO 1 000 : 1CXT
I SO FORF = ]TOA:B=ASCCMIDSK ASCIATI ) ,F, 1 ) ) i IFB<73THEND=££19+ (B-65) *2
170 I FB >7£ANDB< S 1 THEN0=££33 + <B -73 ) *2
180 JFB >80ANOB<83THENO=£379+ (B-8 1 ) *2
130 IFB>83THEND=£459+<B-89)*£
200 PCKEO , 1 tGOSUB4B0:FDRF = 0TOVE : NEXT: POKED ,70 :FORF=0TOVE : NEXT: NEXT
280 INPUT* CHE PAROLA ERA * ; B*
£30 IFB$< >A$(T,T1 3THEN380
£40 PRlNT*3DKk." :FORF=0TO300 iNEXT
250 TEXTtFORF=0TO 1000 = NEXT: NEXT
£08 END
270 FRINT’LCTM— — M i i r i r t r- r- l'
£80 PRINT* iM— WHH fl |B |C IO |E |F |G IH | "
290 FRlNT’MHiWHII - -(— < - ■ f 4 ■ ( ■ I I C
300 PR 1 NT * IHWItHM 1 1 |J |K IL (MINIO |P 1 "
310 PR INT’IMMMMM I I I I I I I I I"
320 pr iNT"uuuunnm iq ir is it iu iv iw ix i *
330 PR INT'imnmH I — I — I — 1 — >— ‘ — L 1 I “
340 PR INT" IMI IY IZ IN » LET. = "ftiPR 1NT" 0— ——— — ——— — I "
350 PRINT* IH { — — i ‘ *
370 RETURN
380 PR INT”D'1I DISPIACE LA PAROLA ERA * *A$(T,TI > !R=R+1 ! IFR=3THEHR=0 : GOTO400
330 FORF =0TO1 000 =NEXT= GOTO250
400 1 = 1 + 1 : !FI=GTHENI=I
410 FORF =0TQ 1000 :N£XT!PR !NT* LlBllMIMRiMllMB & <>MtMF INF DEL GIOCO"
420 FORF =9T0 1 000 '■ h-EXT : PR I NT " .«MW^ UOI GIOCARE ANCORA ?"
430 GETA*ì IFA$O*S"AN0A*< >"N"THEN430
440 lFAS=*N"THENPRirTrWBMSSll*MJCIAO" iENE
450 GOTO 130
460 V0L3: SQUM31 ,300,5 = RETURN
470 DATAAPE, CLUB, EDERA, ATTICO .BANDITO GIACINTI , BATUFFOLO, CASSAPANCA
430 DATAAGO ,MODA ,F IBRE,CH IAVE , CHI AZZE ,SPREPRJTA, CAPPUCCIO ,SOPRANNOPE
430 DATASUD , NOTA ,GATT I , GABB I A ,RAFF I CA ,BR ICCONE , INCUS TR I A ,M ICROSCOP I
500 DATA TRE, SETE, IGLOO, SLALOM, PRIMATO DECADUTO, SPERGIURO
510 DATANO I, CIAO, TACCO, GELARE, GATT INO GRAZIOSO, ERMETISMO, IMPORTANTE, 0
Commodore Computer Club ■ 65
GIOCHI
60 REM ALFABETO PAZZO
70 REM SOFTWARE DI
80 REM FEDERICO CANETTA
90 REM VERS, VIC 80 INESPANSO
95 !
100 PRINT" ICLEAR ] ° SPOKE 36879,87
310 DIM A$<5, 10) SPOKE 36874,200
180 FDR T= 2 TO 5sF0R TI=1 TO 8: REA
D A#: A*<T,T1 )=A*:M:XTiNEXT
130 FR INT" ICLEAR ] C I 7 RIGHTI30 • s Ihp
UT * [HOMI JVELOC ITA 1 ( 1 -80 > " I VE i
IF VE< 1 OR VE >60 THEN 130
140 VE= 100-VE : FOR L I =0 TO 9sFOR TI
= 1 TO 8 sT= INT <RKE(0 )*4>+l
144 A=LEN<A*(T,T1 ) ) : GOSUB 270
150 PRINT" IHOf'EIORA SCRIVO LA PARO
LA" :FOR F=0 TO 1000:KEXT
160 FOR P=1 TO A:B=ASC<MID*(A$<T,T
1 ) ,P, 1 >> ! IF B< 73 THEN 0=38489 +
(B-G5)*2
170 IF B >72 AND B<81 THEN D=385H +
££+<B-73>*2
180 IF B >80 AND B<89 THEN 0=38533 +
44 + < B-8 1 >*2
190 IF B >88 THEN D=38G21 +<B-89>*£
£00 POKE 0,1: GOSUB 460:FOR F=0 TO
VE : ftXT : POKE 3G878,0:POKE D,6:
FOR F =0 TO VE SNEXTi NEXT
210 PRINT" [HOME!
" : PR I NT " t 1 0 DOW]"
220 INPUT “CHE PAROLA ERA " ; B*
230 IF B$OA$(T,Tl> THEN 380
240 PR INT 11 OK 0 : FOR F=0 TO 300: NEXT
250 NEXT : FOR F=0 TO 1000 s hEXT: NEXT
260 END
270 PRINT" ICLEAR] r3 D0UN1 , — , — , — , — r
II
— i — i — r*~i
280 PRINT" |A |B |C IO |E |F |G IH I"
230 PRINT* | — | — | — |— | — | — | — ) — |*
3B0 PRINT" 1 1 |J |K IL IMfN |0 |P |"
310 PRINT»! I I I I | - - - 4 - t — | -
320 PRINT" 1Q |R |S IT IU IV IW|X |”
330 PRINT"| — I — I — 1 — 1 — « — 1 — 1 — I"
340 PRINT" |Y|Z |N* LET.="A:PR INT" CU
PII 16 RIGHT1 |"
350 PRINT"*— i—i 1”
360 PRINT" 15 DOUNIERRDRI = "ER
370 RETURN
380 PRINT" ILIPIMI DISPIACE LA PAROL
A ERA ";A*<T,TD sER=ÉR+l! IF ER
=3 THEN ER=0 JGOTO 400
330 FOR F =0 TO 1000 : NEXT : GOTO 250
400 1=1+1 t IF 1=6 THEN 1=1
410 FOR F =0 TO 1000: NEXT SPRINT" CCL
EAR 1 1 1 1 00UM1C6 RI6HT3FINE DEL
GIOCO*
420 FOR F =0 TO 1000 : NEXT SPR INT" ICL
EAR ] 13 DOWNIG IOGHI ANCORA (S/N
>?"
430 SET A*!IF A*0"S" AMD A*<>"N"
THEN 430
440 IF A$="N" THEN PRINT" 13 D0UN3I
3 RIGHT] ICLEAR JCIAO "SEND
450 GOTO 130
460 POKE 36873,15
470 RETURN
480 DATA APE, CLUB, EDERA, ATT ICO, BAN
DITO ,G IAC INT I /BATUFFOLO , CASSAR
ANCA
490 DATA AGO, MODA, FIBRE, CHIAVE, CHI
AZZE /SPREMUTA ,CAPPUCC IO ,SGPRAN
NONE
500 DATA SUD, NOTA, GATTI , GABBIA, RAF
F ICA, BRICCONE, 1NDU3TR I A ,M1CR0S
COPI
510 DATA TRE , SETE, IGLOO, SLALOM, PRI
NATO , DECADUTO , SPERG IURO
520 DATA NOI ,CI AD, TACCO, GELARE, GAT
TINO, GRAZ IOSO, ERMETISMO, IMPORT
ANTE ,0
66 - Commodore Computer Club
GIOCH I
CONFUCIO
V
T i proponiamo lina nuova versici
grafica del celebre gioco delle toni d
hanoi.
Questo game è destinato agli utenti d
Commodore 16 e 64,
L'obiettivo è riuscire 3 trasferire tutti
disconi dalla postazione numero 1 a quel
la contrassegnata con la cifra 2 oppure 3
Non è consentito muovere più di una
sfera alla volta ed è proibito porla al di
sopra di una avente dimensioni inferiori
ad essa.
Queste sono le uniche limitazioni che
devono essere rispettate da chi si cimenti
con questo appassionante gioco.
Il numero dei discorri può variare da
un minimo di 2 ad un massimo di 7,
Aumentando il numero delle sfere assi-
steremo ad un incremento del livello di
difficoltà.
Buon divertimento.
4 CLR s PK = 12
98 PG$= ■ NANO I " 5 LP « 1 : CR* =CHR* < ì 3 )
108 T$- - ERVOFF 1 ERVOFF 3 _ ERVOFF 3 _E R
VDFF 3.ERV0FF 3»[RVS J"ERVS 3“CRVS
105 8$-" [RVS3_[RVS3_[RVS3«[RVS3*ER
VOFF 3“[RV0FF J“[ RVOFF ]^CRVQFF J
H
106 CC$= 11 E FERO 3 CROSSO! E AZZUR ) [V 10L
A 3 [ VERDE H G I ALLO 3 E ARANC 3 EMARR ì
t ROSA 3 [GRIGIO! 3 [GR IOIDE 3 E VERDE
8 ] [CELESTE 3E GRIGI 03 3"
130 DIM TP$f8) ,T$(S> ,BT$<8> r BSC8) ,
C0$( I3>
111 FOR 1=0 TG 13sq0$( I >=MID$(CC^
I + 3 , 1 ) S NEXT
120 FOR 1=1 TO 3
130 C$=MID$<T$ ,2*1 , 1 > :C*-t$+C$+C$:
C$ = M+C$+C$:C$=LEFT$(C$+C$,14>
140 TP$C I ) =MID$<T$ ,2* 1-1,1) +C$
150 C*=MID*(B*,2*I A >sC*»C*+C*+C$:
e$=C$+C$+C$:C$=LEFT$CC$+C$, 14)
160 BT$< I >=MID«<B*,2*I-1,1>+C*
170 NEXTI
000 L£='[RVS3 ERVS3I ERVS3I ERVGFF] |
ERV0FF3 *
218 R$-"[RV0FF3 CRVOFF 3| ERVOFF 3| ER
VSJ IERVS3 11
228 DIM LF$<5) ,RT$<5>
230 FOR 1=1 TO 5:LF*< i >=MID$CL*,2*
1-1 ,23 :RT$ CI >=M1D«< R* 1 2*1-1 ,£>
5F£XTI
300 €R^=CHRSU3 3
490 PRINT" ECLEAR3 "
*
500 PR 1 NT 11 E D0I4M 3 QUANTT I DISSONI (MA
SS IMO 73 ? " ? i GOSUB 60000
516 IF im=* n THEN 500
560 N=VAL< IN*>: IF N>7 THEN PRINT"E
NERO 3PREG0 s [VIOLA 1N0M PJLT DL
7 . [NERO 3 " * GOTO 500 :
570 IF NO THEN PR I NT " E VERDE 3 NON E
Commodore Computer Club -67
GIOCHI
SSERE REDI COLO ! EhERO J " S GOTO 5
00
300 DN$= * [HOME 3 120 DOl-H} 1 *
310 RT*="U4 RIGHT]"
1000 FOR 1 = 1 TO 3: FOR J=0 TO 7 : P < I ,
J>=05t'£XTJ{hEXTr
1 100 PRINT 1 * CCLEftR ] " JDN$/ “ CRVS 3 " * IP<
1 ,0)=N
1110 FOR 1 = 1 TO 3 SPRINT"! ARANCI
iNEXTT
f
H£0 FR INTONAI " [DOUN3ERVSJ EB RIGHTJ
# I C 1 1 RIGHT3#£E1Ì R TGHT 3#3 INER
0 J”
1150 PR INTONA; LEFT$C " [7 UFJ",N>J
1 180 FOR 1 = 1 TO N
i
1170 PR INTLEFTSC " ERVOFF I ■ +RT* ,7- I + 1
> ’ LEFT$< " (RV33L*+BT$< i) ,£*! + !>
■ * in
f _J
U 80 pc kn-i + ì ) = t*£
1130 r-Exrr
1800 MV=0
1300 TM^T I +60
1910 IF TI<TM THEN 1910
1956 GOSUB 8000
1960 CD=C0+ IMF CO >13 THEN CO= 1
1370 CO*=CG*CCO>
6000 FR$“ 11 thCRO 3DA QUALE TORRE ? "i
GOSUB 5000: 1F THEN 1350
£010 F=VALCIN*>
£0£0 IF PCF ,0X1 THEN PRIMI * C VERDE £
3 TORRE VUOTA E ROSSO 3 ! ! C NERO 3 11 :
GOTO 1900
2050 PR*=" [NERO 3 ALLA TORRE ? "SGOSU
B 5000: IF I m- ma THEN 1350
£060 T=VALCIN*>
£070 IF F “T THEN FRI NT "MOSSA IÈ*FOSS
IS ILE " :GOTO 1300
£080 IF FCT,0>=0 THEN £100
2030 IF P<F>P<F,0) ) >PCT,P(T,0) ) THE
N PR INT H [VER DEB 3 NON PUOI [NERO 3
" : GOTO 1900
£180 FC*P(F,8) SFW S PCF , PC > 5 TC=P <T,8 ?
t TU=P ( T , TC ) : MV -MV + 1
£110 X=l+l3*(F~t> +7-FW72
2160 PR INT DIM$JLEFT$< • E3 UP3 W ,FC+1>
;LEFT$< " [RVOFF 3 * +RTS+RTS+RT* f K
>;
£1£5 LFS=LEFT*< " [DOLt^ll [ 14 LEFT3 " ,FW
+ 1 )
£130 FOR 1=1 TO 8KT*<I)aLEFT*<TF*<I
) ,1+FW) 5^B*<I >=LEFT*<BT*< I) , 1+F
uixfext
£135 HT=0SJ = iUF F >T THEN J = -ì
£140 FOR I -F TO T STEP J
£145 IF P C I jr0 ) >HT THEN HT~P<1,8>
£150 NEXTI
£155 IF HT=P(T,0> THEN HT*HTM!GOTQ
£165
£160 IF ABSCF-T)>1 THEN IF HT=FC£,0
) THEN HT=HTH
£165 FOR I =FC TO HT
2170 :FOR J=1 TO 3
£175 : SPRINT CO$; T*CJXLF$;BSC
J);LFS; " E£ UP 3 * ;
£180 : NEXTJ
£185 sPR INT" CUP ] m ì
£130 hCXTI
£195 PR INT “ [DONNI" J
££00 L$=L£FT$< É [ 16 LEFT3 ■ , 1 +FW> ; R*^
LEFT»(RT* r FU-n
££01 FRI NT 11 ERVS1 fl ;LEFT$C *
* ,FbD ; " [RVOFF 3 " ; LEFTSC " [
16 LEFT1 " r FW) ;
££05 IF F>T THEN ££50
££10 FOR I =F* 13 TO 1*13-1
££15 iFOR J=1 TO 5
£££0 FRI NT CO$; LF*< J > ì R$; RT$ C J ) ; L$
£££5 NEXTJ
£££6 PRINT 11 [RIGHI]
££30 NEXTÌ
££35 GOTO £303
££50 FOR I =T* 13 TO F*13-l
SS - Commodore Computer Club
GIOCHI
£255 PRINT" [LEFT3
2260 ìFOR J =5 TG t STEP -1
££65 JrPRim’CO*? LF*( J ) ; R*; RT*<
J >; L*;
££70 :NEXTJ
££75 NEXTI
£300 FOR I =HT- 1 TO TC STEP -l
£310 • FOR J=8 TO 1 STEP -1
£320 SPRINT CO*} T*< J > } LFS! B*( J ) 3 L
f*j ”[£ UP3":
£330 SNEXTJ
£340 SPRINT" COOWNJ";
£350 NEXTI
2410 PRINT CO*; LEFT*< * tRVS1L"+BT*
( U,FW+J >; “j n ; “ [NERO J " ;
£500 P<T,0>-P<T,0>+1
£510 P<T,P(T,0> )*P<F,P<F,0) )
£520 P<F,0)=P<F,0)-1
£600 IF P <2 ,0 J < >N AfD P(3,0)ON THE
N 1900
2700 GOSUB 8000
£710 PR ! NT" I VERDE 313 DOUHl .
2?£0 PRINT" IRVS3IHOI FINITO
IRVOFF ]| "
2730 PRINT"
*»[RVOFF ]■ "
£740 PRINT" INERO] E DOUMlHfl INPIE6AT0
[violai °;mv; “ r nero smosse ‘
2750 T=£tN-l SPRINT" COOWN3LA SOLUZ IO
NE PIU’ VELOCE"
2760 PRINT" CORRI SPONDE A "ìli "MOSSE
MI
*
2770 PRINT" ÉDQUN 36 IOGH I ANCORA?
GOSUB 86000
2780 IF LEFT*< IW, I )<> Jl S" THEN END
2730 RUM
2800 END
5000 PR INTPR$;
5010 GOSUB 60300 * IF I N*=*" THEN RET
URN
5015 IF LEFTSCJN*, l > = "G H THEN END
5016 IF LEN<IN$>>Ì THEN 5030
5020 1 F JN$>="Ì* AND IN$<="3” THEN
RETURN
5030 PRINT 11 MA COSA DICI ????????"
5040 FOR 1 = 1 TO 500UCXTI
5050 PRINT" E UFI
»
5080 print " i a up] ";pr$;left*< *
* rLENC IN*3 >
5070 PRINT" EURI"; : GOTO 5000
9000 PRINT* [HOME] " ;
8010 FOR 1 = 1 TO 4 SPRINT" IBI ANCO 3
* s NEXTI
3020 PRINT" CHOME 3 "J
8030 RETURN
3000 PR I NT " t HOME 3 "
60000 IN$=" w iZT*Tl i ZC®2 sZD$=CHR$( 20
)
80010 GET Z*IIF Z*<>** THEN 60070
80020 IF ZT( =T I THEN PR ÌNTMID$( '* #" ,
ZC r 1 >i 11 CLEFT3 " J :2C = 3-ZC : ZT=TI +
15
60830 GOTO 60010
60070 Z *ASC CZ*> " ZL=LEN< IN$) S IF <2 AN
D 127X32 THEN PRINT" t LEFT 1 * ;
S GOTO 601 10
!
60080 IF FL A1C3 <Z ANO 127) >64 AND (
Z AND 127X91 THEN 2$=CHR*CCZ +
I2fi) AND 255 )
60090 IF ZL >254 THEN 60010
60100 IN*=IN*+ZffiPRlNTZSJ20S;Z*;
60110 IF Z = 1 3 THEN EN*»MID$< 1N$ ,2 ) = P
RINTCR** s RETURN
60120 IF 2=20 AI4D ZL>1 THEN IN±=LEFT
*< I Nt , Z L - 1 ) SPRINT" CLEFT ] " ; :GQT
0 G0010
60130 IF Z = H1 THEN Z*=CHR* < “20* <ZL >
1 ) > s FOR 2 -2 TO ZLKPR1NT2*; iNEX
T2 s GOTO 60000
60140 GOTO 60010
Commodore Computer Oub - 69
GIOCHI
VIC 20
s
Trifidi
Nello spazio
intergalattico, con il
vostro Vie 20 contro
gli alieni che vogliono
distruggere la terra.
uesto gioco è destinato agli utenti
del computer Vìe 20 e non necessita
di alcuna espansione di memoria.
Degli alieni stanno preparando l'inva-
sione del pianeta terra, disperdendo ncl-
Fatmosfera un pericoloso virus che cau-
serà, immancabilmente, la morte di mol-
ti esseri umani,
A bordo della vostra astronave, dovre-
te cercare di abbattere il maggior nume-
ro possibile di navi galattiche nemiche.
Avete a disposizione due differenti ve-
locità di movimento nell 1 iperspazio: tra-
mite il tasto SHIFT vi sposterete nello
Spazio con una velocità ridona mentre il
tasto CTRL vi permetterà di raggiungere
una velocità fotonica.
Per sparare dovete avvalervi del tasto
situato nella zona destra della consolle,
immediatamente a sinistra del tasto
SHIFT,
Avete a disposizione un tempo limita-
lo per ultimare la vostra missione nello
spazio intergalattico, terminato il quale
vi verrà dato il responso definitivo sul
vostro operato.
Buona fortuna.
70 - Commodore Computer Club
GIOCHI
1 POKE 56,24 iPOKE 52,24:CLR :OOS
UB 3000 iPOKE 36879, SiPRINTCHR*
(8>iA=30?20sDC6>=29
2 VS =368771 V I =36373 i POKE VI,15iL
=0:DC1 )=-l iD<2)=-£9:0(3>=-23iD
(4 ) = -27 !D <5 ) - 1
3 D<7 )=23 ! D<3>=2?iW( I ) =64:14(2 > =7
7 sLK3 ) =33s W<4 ) =78 iU<5 ) *64 i UK6 )
=77 sUK7 ) =33
4 POKE 368G6 ,23 : POKE 36867, 72: PO
KE 36364 ,7: POKE 368S5 , 13 : POKE
B43 ,28 : PR INT " [ CLEAR 3 *
5 POKE 648,30 : PR INT" [CLEAR ] " IFOR
1=0 TO 5 :P0KE 7674+ I ,32 :PCKE
7674+A+I , 1 tKEXTs UIC 8 ) =78
S P=7680iR=l sUl=3£:U=7800:Ri=l :F
OR 1 = 1 TO 93! POKE ? 168+RND < 1 > *
1008 ,74 +RND < 1 >*2
7 NEXT* P 1 =32 l POR 1=1 TO 155POKE
7 163+RND < 1 >*100S,76sfCXT:TI*=”
000000 ”
30 T=PEEKU97):Q=0! 1F T=23 THEN Q
= - 1 ! POKE VS- 1 ,225
32 IF T =37 THEN Q* li POKE VS- 1,227
33 IF T=30 THEN 100
34 R=R+QiIF R< 1 THEN R=8
35 POKE VS- 1 ,0 » IF R>3 THEN R=1
36 POKE P,P1 :P=P+PEEK(653>*D(R) s I
F P >8 176 THEN P=P-1008
37 IF P< 7 1S3 THEN P=P+1008
38 P t =PEEK < P ) s POKE P,65+R!P0KE P +
A ,7 ! IF P 1 =65+R 1 THEN 200
40 IF RND<1>>.6 THEN R1=R1+INT(RN
D< 1 ) *3 ) ~ 1 i POKE VS,£35+RND<1)*1
8
42 IF R 1 < 1 THEN Rl=8
43 IF RI >8 THEN Rl=l
44 POKE VS ,0!POKE U ,U 1 : U=U+D <R I ) i
IF U >8 176 THEN U=U-1008
45 IF LK7168 THEN U=U+1008
46 U 1 =PEEK <U ) JPOKE U,65+Rl:P0KE U
+A ,5 ! IF U 1 =65 +R THEN £00
49 IF TI4< ”000200 8 THEN 30
50 PR INT" I HOME 3 [BIANCO 1 TEMPO SCAD
UTC " ;
51 PR INT" 12 DQUIN3 PUNTEGGIO! "SCsSC
=0 : POR 1 = 1 TO 3000!NEXT;WAIT 1
97, 63 s GOTO 2
100 IF F < >0 THEN 110
102 Y=D<R) !pl =R+65iF=P 'L=0:K=R!G=P
EEK <36868 > OR 128
110 POKE VS-1,G!F=F+Y:F1=PEEK(F)!P
OKE F,UCK)
111 IF F<7166 OR F)8176 THEN POKE
F,F1 iPOKE VS -1,0! GOTO 34
120 POKE VS-1,0:JF Fl=Ri+65 THEN 1
32
121 L=L+1 4 IF L= 12 THEN POKE F,FliF
=0 : GOTO 34
122 POKE F ,F1 sOOTO 1 10
129 POKE U ,42 • FOR 1 = 1 TO 4iF0R J*1
TO 8 : POKE U+D<J) *1 ,RND< 1 >*2+?
4 iPOKE VS,220+J*3:NEXTJ,I
130 FOR 1=1 TO 4 iFOR J=1 TO 81P0KE
U+D<J)*I,32! POKE Vl,15-U3iNE
XTJ, I
131 POKE VS,0 iPOKE VI, 15 iPOKE U,32
i U=7 163+ INT <RM3 < 1 )*28) iU l=32:F
=0!R 1 = INT CRND C 1 > *8 + 1 > iRETURN
132 GOSUB 128iSC=SC+liF0R 1=1 TO 1
0 iPOKE 7163+RtCK 1 >*1008,RND< 1)
*2 +74 i NEXT i GOTO 34
200 GOSUB 129 i PR INT " tHOME 1 [BIANCO]
COLLISIONE"; sOOTO 51
9000 FOR 1=0 TO 1023 IPOKE 6144+1, PE
EK (32768+1 >i NEXT! POKE 36863,25
4 i FOR 1=0 TO 87 i READ A
9010 POKE 6672+1 ,As NEXT iRETURN
9020 DATA 0,7,30,254,30,7,0,0,0,64,
48,60,31 ,30, 12,4, 16, 16, 16,56,5
6,124,124,68
3030 DATA 0,2,12,60,248,120,48,16,0
,224 ,120,127, 120,224 ,0 ,0 , 16 ,48
,120,248,60,12
9040 DATA 2,0,68,124,124,56,56,16,1
6, 16,8, 12,30,3! ,60,48,64,0,0,0
, 8 , 0 , 0 , 0 , 0 , 0,0
3050 DATA 0,0,0,64,0,0,0,0,0,0,6,6,
0 , 0,0
Commodore Computer Ciub - 71
Le stampanti MT/85, a BO colonne, e MT/8ó p a 136
colonne, rappresentano una nuova frontiera nel
settore delle stampanti a basso costo.
Basso costo, ma non bassa qualità e basse
prestazioni, intatti ecco le credenziali di questi due
nuovi prodotti.
Velocità a tSO cps. bidirezionaie ottimizzata, NLG
a 45 cps., grafiche, possibilità d 8 fonti alternative
di caratteri e naturalmente lo completa
compatibilità con il PC IBM.
Il prezzo: il più competitivo del
mercato in questa fascia di
prestazioni.
Naturalmente anche le MT/85/86
oltre ai trattori hanno anche
trascinamento a frizione e
consentono pertanto il
trattamento dei foglio singolo.
_bi
Tutte .
le garanzie
delnl
- ■" ■ .
I . . i
MANNESMANN
TATJY
20094 Coreico (MI) - Vici Cadamosto, 3
Te:. (32) 45Q285Q/655/6Ó0/665/Q7G - Telex 311371 Talìy l
00137 Pomo ■ Via I De! Lungo, A 2 - Tel (06) 6273456
10099 San Mauro (IO) - Via Cascia, 306 ■ Tel (011) 6225171
40050 Morì le veglio (BO) - Vìa E- nife in. 5 - Te' (051) G3250S
adi/enfls.'n
The day after
uesto gioco simula un'ipotetica
giornata dopo lo scoppio della bomba
atomica. Per salvare la terra dovete pilo-
tare la vostra navicella per andare a recu-
perare delle palline rosa altamente
radioattive.
Non è un gioco facile come sembrai
infatti, le persone ancora in vita (diven-
tate pazze) cercheranno di distruggere là
navicella tramite dei cannoncini. Quan-
do sarete riusciti ad uscire dalFhangar
occorre dirigersi su uno dei pianeti e riti-
rare le palline radioattive; fatto questo
ogni volta occorre uscire dal quadro at-
tuale e così via per 5 volte per tutti i
cinque pianeti. Al termine si passerà al
quadro finale: una caverna rossa dove è
situata la pallina più grande di tutte e
naturalmente la più pericolosa. Presa
quest'uHima, il gioco ricomincia al se-
condo livello. Ad ogni nuovo quadro, sm
da quello iniziale, c’è un’astronave che
temerà di distruggervi venendovi addos-
so. Per avere una spinta regolare è me-
glio inserire Fautofire del joystick- (se lo
possedete); se invece si vuole una spinta
elevata occorre disinserire Fautofire e
premere manualmente il bottone del
joystick.
Attenzione: dato che le immagini del
gioco sono tridimensionali occorre pre-
stare la massima attenzione durante le
manovre di aggancio delle palline
radioattive.
Tasti comando
Z = sinistra
X ** destra
CRSR in basso = turbo reattore
CRSR destra = gancio trasporto
Idea 9
Gì oc ahi! ita e suono 8
Animazione 7
Voto 8
Doodle bug
uesto gioco rappresenta una fusione
tra il conosciutissimo e ormai famoso
“Pac man” e la graziosa coccinella di
“Lady brighi”.
Si tratta sicuramente di uno dei miglio-
ri giochi per il Vie 20 della MasterTronic,
Un alieno deve girare per un labirinto al
fine di recuperare dei “volanti" dissemi-
nati su tutti i vari percorsi. Su alcune
pareti del labirinto vi sono porte girevoli
che servono sia per arrivare in un punto
de! labirinto senza fare un giro enorme
sia per far cambiare strada all’alieno
nemico.
Vi sono infatti anche degli alieni, che
aumentano di quadro in quadro fino a
diventare sei, e che tentano di eliminare
il giocatore, finché questo non elimina
loro,
II tuo omino generalmente é colore blu
e alTinizio della partita si trova in mezzo
al quadro. Tenendo premuto il bottone
fi re del joystick. Foni ino sgancia una mi-
na per distruggere il nemico che, però,
ricomparirà subito in un punto casuale
del quadro.
Voi avrete a disposizione 5 alieni e 5
aerei,
1 più abili possono scegliere il numero
degli alieni nemici, (mass, 5) e i quadri di
gioco (mass. 6),
Idea 8
Giocabilità e suono 9 ■
Animazione 8
Voto 8
Commodore Computer Club - 73
Nei giochi di
adventure le capacità
mentali contano dì
più dell’abilità a
manovrare il
joystick; metti alla
prova la tua fantasia
e la tua perseveranza ,
uniche qualità che ti
permetteranno di
arrivare alla fine del
; gioco .
Negli ultimi anni il mercato ha offerto
un nuovo gioco (si fa per dire) al pubbli-
co: Tadventure. Il gioco non t di conce-
zinne nuova; la novità sta nella lingua
usata: finalmente compaiono gli adven-
iures in italiano, un gioco quindi alla
portata di tutti.
Per gli appassionati degli “arcarìes”
sarà un dramma, ma di certo alla lunga
fornirà un divertimanto maggiore dovu-
to al co involgimento del giocatore e non
solo alia sua prontezza di riflessi.
Che cosa è un adventure? Vediamone
una sintesi:
L’uomo, con in mano un idolo d'oro e
delle pietre preziose, balza su una piroga
nel tentativo dì sfuggire agli indigeni che
Io inseguito. La corrente lo trasporta
verso valle, gli inseguitori però, si avvici-
nano sempre più. Subito si rende conto
di non avere alcun mezzo di propulsio-
ne; prova con le mani: urta frotta di pesci
piranha gli si avvicina; disperato si gira e
spara sugli inseguitori, ma questi, in
gran numero, gli sono ormai addosso e
lo spingono nel fiume. ,*
Immediatamente sul video appare
una didascalia...: M Sei mono, Vuoi gio-
care ancora (S/N)?’\
Il segnale del computer è come un
risveglio, ràwentura non è finita, l'uo-
mo nella sua fuga precipitosa si è distrat-
to: dimenticando le pagaie ha messo la
parola fine alla vicenda. Quella che do-
veva concludersi con allori e ricchezze si
è trasformata in morte prematura, che
costringe a ricominciare {dando libero
sfogo alla fantasia) la ricerca di un ogget-
to, di un sìmbolo per cui valga la pena dì
tentare.
Si riprende il gioco, questa volta senza
dimenticare niente, prestando la massi-
ma attenzione a tutto quello che si in-
contra sulla strada, fossero anche sem-
plici parole.
Questo gioco a differenza dei classici
'Vìdeo-games*’, non richiede riflessi
pronti e colpo d'occhio, ma notevole
concentrazione fino ad immedesimarsi
completamente nel personaggio; impor-
tante è capire come il suo ideatore ha
sviluppato la storia, entrare nella mente,
nel modo di pensare delFautore per ca-
pire quello che gli frullava nella testa nel
momento in cui scriveva la trama.
L’essenza del gioco sta neU'intricato
sistema di trappole, oggetti (nascosti e
avventura !
non), enigmi e quesiti da risolvere, per-
correndo strade con personaggi amici e
nemici, raccogliendo oggetti che servi-
ranno a superare un ostacolo tra i monti
o la foresta o semplicemente a recupera-
re la chiave che apre la porta di casa.
Disegni, suoni e rumori, possono tare
da cornice alla vicenda, lasciando però il
più possibile libera la fantasia del gioca-
tore nel crearsi le scene dove hanno luo-
go le varie azioni, il meglio è rappresen-
tato dal niente: niente grafica, musica o
rumori (opinione dello scrivente).
Un consiglio utile per chi volesse ci-
mentarci in un ad ve mure è di armarsi di
penna e carta, prendendo nota di tutto
quello che ci sembra (ed anche Quello
che non ci sembra) importante. Ogni
spostamento, ogni ostacolo, ogni frase
(magari sibillina) è meglio annotarla,
potrà tornarci utile in un altro posto e
fornirci la soluzione od una traccia che ci
metta sulla strada giusta In definitiva è
necessario trasformarsi in detective e un
buon investigatore non può fidarsi solo
della memoria, specialmente se il viag-
gio è lungo* complesso e ha molti dati da
ricordare.
La tecnica delle annotazioni è sogget-
tiva. Un'altro sistema potrebbe essere
quello di segnare una casella per ogni
spostamento nella direzione in cui & av-
venuto, raccordando con una freccia e
marcando ogni casella con un numero
sotto cui scrivere tutto quello che ci inte-
ressa: può servirci a ricordare che in quel
posto t meglio non andare o che si è
lasciato un oggetto che potrà servirci in
seguito.
I comandi vengono dati al computer
con una o due parole, ìn certi casi con la
sola iniziale. Possono essere dati in pri-
ma persona o rivolti ad un compagno di
viaggio (a mio avviso la seconda scelta
offre maggiori probabilità al giocatore di
immedesimarsi nella parte).
Normalmente i comandi dati con la
sola iniziale sono quelli di spostamento
(Sud, Est, Nord e Ovest), Inventario
(elenca il materiale recuperato durante
il gioco). Aiuto (può essere fornito in
aiuto per la sessione in corso), Fine (vie-
ne usata per indicare la fine del gioco ed
offre la possibilità dì registrare i dati e la
posizione raggiunta- al termine della re-
gistrazione si può riprendere il gioco).
Altri ordini vengono dati con due pa-
role (salvo richieste specifiche); la prima
è un verbo (prendi, vuota, colpisci
ece..,), la seconda ìndica un oggetto (pi-
stola, corda, coltello ecc...). A questo
punto Felaboratore passa al setaccio tut-
te le possibilità offerte dal programma,
dando una risposta generica tipo “non
capisco ', o una affermativa dì esecuzio-
ne del comando.
Avremo quindi degli ordini tipo
“prendi pistola 1 ', Egeria diamanti 11 , “to-
gli tuta 11 (spaziale), etc.
Ora bando alle chiacchere, comincia-
mo a giocare ; le difficoltà sono molte ma
anche le soddisfazioni saranno pari,
quindi augùri e buon divertimento.
Nel numero 7 della rivista su cassetta
Commodore Club, comparirà l'adven-
tures SOLAR A che riunisce al suo inter-
no tutti i temi trattati in questo articolo.
La potrete reperire in edicola contem-
poraneamente a questo numero di Com-
modore Computer Club,
Paola Magri n
Non lasciarti sfuggire
il prossimo
Perchè anche sotto l’ombrellone
potrai rinfrescarti le idee sul Data Base.
Troverai:
• La Teoria
• Banca Dati. Anteprima da Commodore Club,
il nostro data-base per te
• The Manager e SuperBase
• Tutto archivio, un programma tutto Basic
IL PORTA COMPUTER
CHE FA SPAZIO
Mobile di mecf, dens.,
laccato bianco, che ti per-
mette di raggruppare tutti i
componenti del tuo computer
in uno spazio di cm. 64x45, eli-
minando al tempo stesso tutti i fili
esterni.
I lettori che invieranno il coupon qui a
destra, compilato in ogni sua parte,
riceveranno il K16 a sole
L, 88.000; oppure il set completo
(esclusa la sedia) a L. 175.000; oppure solo
la scrivania a L. 95.000, Spedizione postale ^
e IVA comprese nel prezzo.
di Amorusi G. Battista
Via Montalbano, 25L ■ Loc. Marcatale
Tel. (0571) 501563 - 50059 VINCI (Fi) - Italy
, 1 '
Q
#
&
0
* X*
v ^
0
SCAMBIATEVI LE LISTE
o
Giovanni Breda * Via G. Mameli 19 - 3"? 100
Verona -Td. 045/46491
Alberto Frabetti * Via Ricciarelli 139 -44100
Ferrara - Tel. 0532/61034
Stefano Barcarola - Via Biiozz] 8 05021 Ac-
quasparta fTr) - Td. 0744/930387
Dario Pausili * Via Pascoli 24 - 34 129 Trieste -
Tel. 040/773766
Bruno Gandolfì - Via P, Calamandrei 1 -
14049 Nizza Monf. (Ari -0141/727216
Fabio Zerbini - Via Sacconi 5 - 20139 Milano -
Tel. 02/538757
Stefano Ferrari - C\so Grosseto 259 10147
Torino -Td. 011/296882
Franco Ripamonti - Casella Postate 26 - 22061
Barzago (Co)
Giuseppe Borracci * Via Mameli 15 - 33100
Udine - Tel. 0432/291665
Francesco lozia - Via dello Stadio 4 - 97014
Ispira ( Rg)
Ignazio Mannone - C.da Dammusello 504 -
91025 Marsala (Tp) - Tel. 0923/967922
Antonio Tassane * Via Montecuccoli 17 -
(XI 176 Roma - Tel. 06/7560394
Salvatore Scigljcv - Via Pirandello 33 - 98039
Taormina (Me) - Td 0942/23797
Pietro Masi - Scalo S, Lorenzo 47 - 00185
Roma - Tei. 06/4955167
Nicola Gianno - Via Marsala 351 - 91020 Rilie
vo-Td. 0923/864559
Vincenzo D’Alessandro - Via Sperone 7 -
90123 Palermo - Td. 091/475988
Maurizio Guidato - Via Pu tignano 26 - 56014
Pisa - Tel. 050/982281
Alessandro Àrmenuti - Via Cardinale Mimmi
24 -70 124 Bari -TeL 510980
Marco Schito - Via Lucca 36 - 20152 Milano -
Td. 02/4591526
Club 64 Monta gnau a Software - Casella Po-
stale ó -35044 Mnntagnana -Tel. 0429/82469
Nicola Esposito - Via MArchesa 43 - 80041
Boscoreale (Ma) - Td. 081/8591253
Gian Marta Agretti - Via Del Gemo 4/5 -
40135 Bologna - Tel. 051/414630
Lorenzo Daniele * Viale Faenza 26/4 - 20142
Milano -Tel. 02/816426
Nicola De Francesco - Vienici Sguizzante 11 -
25 121 Brescia - Tel. 030/55480
Maurrio Dal oso * Via R and accio 1 - 36100
Vicenza - Tei 0444/56236
Albana FiìUd - Via B, Miriam 61 - 63035
Oftida (ap) - Tel 0736/80144
Dario Gamba * Via Guido Reni 96/12 10136
Torino -Tei. 011/3090175
Emanuele Ranieri - Via S. Anna 3 - 05019
Orvieto - Tel. 0763/90475
Marco Pendino - Via Ugo Betti 25 - 20100
Milano - Tel 02/3087 174
Martin Bruni - Via Ricrodi 1 1 - 20131 MUano
Tel 02/203973
Achille Lamina - Via Opicina 3 - 48100 Baveri
na - Tel 0544/420782
Francesco D ’ Andrà - Via G. Mima 33 ■ 74100
Taranto - Tel. 099/314517
Claudio Giovanellì - Via Ripamonti - 20141
Milano - Tel. 02/536926
Omar Ricci * Via F. SoLrnano 33 - 16030 Sori
(Gè) - Tel 0133/7011 16
Germano Sessa - Via Roma 352 - 84092 BelLzzi
(Sa)
Giuseppe Romano - Via Nazionale 12 - 98065
Montavano Elicona (Me) - Td. 0941/679040
Massimo Bovi - Via G. Galilei 5 - 33170 Por-
denonc- Td. 0434/42586
Roberto Maniconi - Via B. Buozzi 4 - 00049
Vcltetri Tel. 06/9636898
Francesco & Paolo - P O. Box 85 - 25010
Rivoltella D/C (Bs) Tel 030/9142101/
9141303
Ugo Mirorn - Via Pesto Avieno 218 - 00136
Roma - Tel. 06/3491667
Lorenzo Gfavennl - Via laltuada 26 - 20135
Milano - Tel, 02/5460905
Kaffadla Libbi - Via Firenze 17 - 64021 Giu-
li anova - Td. 085/8(1)1548
Massimo Proia - Via Pubblico Passeggio 16
29100 Piacenza - Tel. 0523/32417
Giuseppe Moreschi - Via Paterno" 1 - 20143
Milano -Td. 02/8134094
Nicola Mttòtroiacova - Via 19 De Denominare
54 - 64029 Silvi MArina (Te) -Tel. 085/932437
Francesco Pticci - Vìa Pcrrìs 14 - 84012 Augii
(Sa) - Tel. 081/949312
Cosimo Tarttillo - Vìa Rizzo 15 - 90010 Aspra
(Pa) - Td. 091/930314
Dino Mar occhi - Via Marconi 302 - 65100
Pescara -Tel. 085/68352
Danilo Curia ri - Via del Lavoro 25 - 40L27
Bologna - Td. Q5HE5765
Silvano Bompieri - Via Baccagliarli 8 - 46040
Moiizambano (Mn) - Td. 0376/845372
Raphael Eredità - Fermo Posta Milano fiori -
20089 Milano - Tel 02/8257958
#
Gianni Mazzesi * Via Cella 329 - 48020 S.
Stefano (Ra) - Tel, 0544/573529
Enrico Ànti nord - C so Europa 26 - 80127
Napoli -Tel. 081/643119
Corri modorù Computer Cfub -77
BASIC
VERT 05
78 - Commodore Computer Club
U„
XJ n 'elevata percentuale dei nostri let-
tori è alle prime armi nel mondo dell’in-
formatica e incontra difficoltà nel digita-
re i programmi da noi pubblicati.
i caratteri “speciali'’ bianchi su fondo
nero (semi-grafici in “reverse’") che rap-
presentano precisi comandi per i compu-
ter Commodore sono riportati nel listato
di esempio a sinistra così come appaiono
digitandoli su video o su stampante,
mentre a destra come li rappresentiamo
nei nostri listati.
La riga 360, ad esempio, deve cosi es-
ser interpretata:
dopo aver battuto il carattere di virgolet-
te (“) che si ottiene premendo il tasto
SHIFT insieme con il tasto 2, è necessa-
rio battere il carattere CRSR DOWN (il
tasto, cioè, che normalmente spostereb-
be il cursore nella cella video
sottostante).
Analogamente, nella riga ISO del lista-
to “tradotto" (di destra), il termine [NE-
RO] sta i\ significare che bisogna utilizza-
re il carattere speciale del colore nero
(tasto C I RI., insieme con il tasto 1, vedi
listato di sinistra).
Per ricordare in che modo vengono
normalmente visualizzati i caratteri spe-
ciali, nel la seconda parte delle righe di
sinistra (dopo i REM) sono riportati i
tasti che è necessario premere per otte-
nere il carattere-comando “speciale”
La Redazione
BASIC
100 REM I CARATTERI SPECIALI
110 REM DEI COMPUTER COMMODORE !
IE0 REM COME APPAIONO NORMALMENTE
130 REM SU VIDEO O SU CARTA, '
140 REM <CTRL = TASTO CONTROL >
150 REM CCMDR = TASTO COMMODORE) I
160 REM C CRSP “ TASTI CURSORE) L
1 70 ? |
!E0 PR INT"!" * REM CTRL + 1 NERO i
190 PRINT"^":RPM * +2 BIANCO 1
200 PRINT'II" 5REM * +3 ROSSO
310 PR I NT " ^ " i REM 41 +4 AZZURRO
330 PR I NT ■ 3|" : REM * +3 PORPORA j
330 PR INTUII" : REM " +6 VERDE I
340 PR INT*3* ! REM * +7 BLU ]
250 PR INTUBI* ^REM " +8 GIALLO 1
260 PR INT“ ! REM rt +3 RE VERSE ON I
270 PR INT"H" ! REM " +0 REVERSE OFF |
2S0 PRINT"C"SREM CMDR+i ARANCIO t
330 PRINT - ** :REM " +3 MARROU !
300 PR INT"®* s REM " +3 ROSSO CHIARO !
310 PR INT H (S" SREM " +4 GRIGIO 1 J
320 PR INT - £3" 1 REM " +5 GRIGIO £
330 PR !NT**W" ! REM “ +6 VERDE CHIARO
340 PP INT’U" = REM " +7 BLU CHIARO I
350 PR TNT "H 4 * ’ REM " +8 GRIGIO 3 1
3CB PR IN7"M M * REM CR£R IN BASSO 1
3^0 PR 1 NT 11 H" I REM CRSR* A DESTRA
300 PP TNT "ET :REM CRSR IN ALTO 1
390 PP I NT " H" ? REM CRSR SINISTRA *
400 W R I NT* 3" 5 REM HOME [
410 PRINT* J* sREM CANCELLA SCHERMO ,
480 t |
430 REM ESEMPI 01 VISUALIZZAZIONE* |
44 0 PR lNT^ JK^tr :REM CANCELLA SCHERMO, (
450 T REM CRSR DUN OUE VOLTE !
4E0 : REM CRSR DESTRA TRE " j
470 i I
480 PRINT^^MI" : REM BIANCO, CRSR SINISTRA ,
490 : : REM DUE VOLTE E CRSR D L*W |
500 ? : REM UNA SOLA VOLTA i
100 REM 1 CARATTERI
110 REM SPECI AL II COME
130 REM VENGONO INDICATI
138 REM SULLE RIVISTE?
140 REM COMMODORE
! 50 REM E COMMODORE
ISO REM COMPUTER CLUB.
1 70 s
130 PRINT" [NERO J M
130 PRINT" [BIANCO]
800 PRINT" CROSSO 1 "
810 PRINT" tAZZUR] w
820 PRINT" t VIOLA 1 h
230 PR I NT ” C VERDE 1 "
240 PRINT" CBLELH k
250 PR INT" CG I ALLO 1 "
2S0 PR T NT " [ RVS 1 "
270 PRINT" CRVOFF 3 "
290 PR I NT “ C ARANO 3 "
230 PRINT" CMAPR1 "
300 PR INT" [ROSA] “
310 PR INT" [GRIGIOI ] "
320 PRINT" CGRIGIOS 1 "
330 PRINT" tVERQESl "
340 PR t MT‘l CELESTE 3“
350 PRINT" CGRIG 1031"
.360 PRINT" LOOWNI "
370 PRINT" [R IGHT1 “
300 PR T NT* I UP 3 M
330 PRINT" CLEFT1 H
400 PR INT" [HOME] "
4 10 PRINT 11 tCLEARl*
420 !
430 REM ESEMPI
440 PRINT" ICLEAR 1 E2 00UN3
t 4 R ! GHT ] "
450 ?
460 ;
470 *
4S0 PRINT* [BIANCO H£ LEFT
1 [DONNI *
Commodore Computer Club 79
BASIC
RISPOSTA
al quiz pubblicato alle pagine 32-33-34
1 - Per U computer, VIVA LA PAPPA
rappresenta il nome di una variabile nu-
merica che può essere abbreviata con VL
La risposta è pertanto: 0 (supponendo
che il computer sia stato appena acceso o
resettato),
2 * La risposta esatta è OUT OF MEMO-
RY ERROR, Una submarine non può
“chiamare' 1 se stessa. Se si tenta di fare
ciò è come se si tentasse di superare il
massimo numero di “nidificazioni”
(= chi amata di una submarine all 1 interno
di un’altra subroutine) di subroutine
possibile che è 3$
3- 11 cursore viene posizionato nella pri-
ma cella video in alto a sinistra, 1 1 coman-
do, infatti, è in fin dei conti un banale:
PRINT CHR$(19).
4- 11 programma continua eseguendo, se
c + è, P istruzione successiva al comando
END. In caso contrario compare nuova-
mente READY.
5 - Risposta C
6 - Risposta C
7 - LET è ristruzione che assegna un
valore ad una variabile e che fa parte del
linguaggio arcaico Basic. Nonostante sia
obsoleta, è ancora presente in tutti i lin-
guaggi Basic, E' quindi un'istruzione su-
perflua dato che è possibile ottenere, ad
esempio, lo stesso effetto sia con:
LET A =989 sia con; A =989,
8 - Sono egualmente valide le risposte
“C”e“D”
9 - La risposta esatta è la “C”. À Livello
elettronico, infatti, il tentativo di scrive-
re un dato in una memoria ROM è sem-
plicemente privo dì risultati e non dan-
neggia in alcun modo i circuiti integrati
interessati a 11 1 operazione.
10 - Per Operazione sì intende la singola
operazione elettronico - logica (= ciclo
macchina) che viene eseguita dal micro-
processore ad ogni impulso proveniente
dalPoscillatore al quarzo.
Un'istruzione in linguaggio macchina
può richiedere anche 5 cicli macchina ed
un'istruzione Basic, a sua volta, può ri-
chiedere l'esecuzione di centinaia di
istruzioni in L.M.
Ecco perchè, nonostante l’apparente
alta velocità (misurata in milioni di ope-
razioni al secondo) alcune operazioni ef-
fettuate con programmi Basic risultano
piuttosto lente.
Commodore 64
1 - Risposta “C"-
2 - Risposta “C\ E’ possibile allocare
sprite oltre ['indirizzo 16348 ma è neces-
sario spostare la memoria video ricorren-
do all'alterazione di alcuni puntatori.
Tale tecnica, come si può immaginare, è
utilizzata solo da esperti programmatori,
3 - SYS 64738
4 - L'Executive non prevede l'uso del
registratore a cassette e non è possibile,
quindi, caricare programmi da nastro.
5 - Esiste effettivamente un programma
su nastro che “trasforma” il Commodore
64 in Sinclair Spectium senza alcuna mo-
difica elettrica, E T possibile utilizzarlo sia
per programmi Basic che per programmi
L.M. protetti oppure no.
L’unico inconveniente che si verifica è
costituito dalla maggior lentezza di ese-
cuzione del programmi stessi dato che è
necessario interpretare il codice 7-80 ed
adattarlo al codice 6510,
Non esìste invece, almeno per quanto
ci risulta, un programma che trasformi lo
Spectrum in un Commodore 64,
Commodore 16
j
1- Da 3072
2 - Risposta “A”
3 - Drive per minifloppy,
4 - GRAPHIC
5 - Rintracciare gli errori di programma-
zione. Può comunque essere definito a
piacere dall'utente ricorrendo al cortiado
KEY,
Vie 20
1 - Non è possibile generare sprite col Vie
20 .
2 - Risposta' 1 ©”
3 - SYS 64802, Con Rim/stop e Restore si
ottiene il ripristino di alcuni puntatori,
deirinterrupt, del suono, del colore ecc.
ma non dell’intero sistema,
4 - Risposta "D’\ Le prime tre operazio-
ni sono invece perfettamente lecite,
5 - 199000 italianissime lire.
Alessandro de Sianone
80 - Commodore Computer Club
INVIARE TUTTA LA PAGINA ANCHE SE SI UTILIZZA UNA SOLA SCHEDA
I
H * • • , ’ • , u
Registrate il mio abbonamento annuiate a Commodore Computer Club,
i J Ho versato oggi stesso il canone dii. 28,000 a mezzo c/c postale n° 3 7952207 intestato
a:
Systems Editoriale - V le Famagosta, 75 - 201 42 Milano
□ Ho inviato oggi stesso assegno bancario n
per l'importo dì L 28,000 intestato a Systems Editoriale
Si prega di scrivere li proprio nome e ['indirizzo completo in modo chiaro e leggibile, inviare
la fotocopia del bollettino di c/c postale.
Considerando che i numeri 1 , 2 e 7 sono esauriti, vog Siate inviarmi i numeri arretrati
al prezzo di L. 5*000 cadauno per richieste fino a 4 numeri, o di L 4 000 cadauno per
richieste oltre 1 4 numeri arretrati, e perciò per un totale di L Sono a conoscenza che
i fase ioli suddetti non saranno inviati in contrassegno e, pertanto, ho provveduto oggi stesso
a versare il canone di L.*, a mezzo c/c postale n. 37952207 intestato a:
Systems Editoriale - V.le Famagosta, 75 - 20142 Milano
STATISTICA
Non posseggo un computer □
Posseggo un C64
Posseggo un VIC 20 ............. ....
Posseggo un Commodore Plus 14
Posseggo un Commodore Plus 16
Posseggo un registratore dedicato
Posseggo un drive 1 541
Posseggo una stampante
Posseggo un monitor
+ + + ■!■»■ Bill
sin ...
no □
sin
no □
si □ ...
no n
sia ...
no n
Si □ ...
no □
si □ ...
no G
sin ...
no □
sin ...
no □
«
a
J COLLABORAZIONE
a
A titolo di prova vi invio un articolo e la cassetta. ...disco ,
col programma che intendo proporre per la pubblicazione di cui garantisco l'originalità.
m DO M AN DÀ/R ! SPOSI A
11
- IHr4rTr
■ - - - »- tt B H ■ >
r* i ■ ■ s ■* j
tini m m ■ ■ lij
■ I U1J - S.4Ai.WJJ WLJ4WBJJI.JJ W b 4 4 iij - - - « JH + -H fr 4 > 4- P 1 , | J-|- - 4 b B 4 J PP J - - i - r - ■
+ r - i p i r i
CERCO/OFFRO CONSULENZA
r ■ I li 1 i r r ■ ■■ i i
■ ■■ij’iiiiiiiii i i ii i ■ ■ ■ li niajj-r
■«.■«■■■■a* » H M '** M + « »t • M !+• Mtt »■•-■* t - 9 -I -i* 9 4 Mi I f • i I rk« fi mi r ■ i i ini nM ir
‘ i i **1 Mi > M4rik4‘M*r4ikr1tcii11'ii#kii'k*min mini
■ vi mi ■■■ i ■■■>■-■■■ mi tu ■ rim-i^irnimmif mi •!■■)■■■ » i « i i ■ « 1 ■ i i ■ 'M I M > M MH '«HH
j ■ . k f * j l. ■ . • i MM > • M ^ ‘■MI-MSr-* li . 4 4 . | i +T* 4 - t I p 4 4 rn r r r
9 J J* ni k
■ ■ ■ UlBIU.IIIIf f II pii
INVIARE IN BUSTA
CHIUSA E AFFRANCANDO
SECONDO LE TARIFFE VIGENTI A:
COMMODORE COMPUTER CLUB
V.le Famagosta, 75
20142 Milano
INVIARE TUTTA LA PAGINA ANCHE SE SI UTILIZZA UNA SOLA SCHEDA
0
Due grandi software
per il tuo 64
1
VR insegna, aggiorna
ti fa toccare con mano
tutte le novità
*** afe. ^ n ntTTr 1
AF
i
iiV
Co,
C ° n n Con, **«w w «
stwr
geùffliwté
OGNI
IN EDICOLA
■SOjV Y
»*«- • V'i
»--. L.,
!_y